陈奇网络工作室

Docker镜像和容器用法

服务器

本文主要介绍了docker镜像和容器的使用方法。 内容很清楚,感兴趣的伙伴可以学习一下。 读完之后我觉得会有用。

密勒加速器

国内有时很难将镜像从docker hub中拉出,但在这种情况下可以配置镜像加速器。国内许多云服务提供商提供国内加速器服务,包括:

网易云加速器https://hub-mirror.c.163.com

AlibabaCloud (阿里巴巴云)加速器(需要获取帐户) https://Cr.console.a liyun.com/cn-Hangzhou/mirrors

国内各大云服务公司都提供Docker镜像加速服务,建议根据运行Docker的云平台选择相应的镜像加速服务。 具体请参考官方文档。

在CentOS7系统上,请按如下方式写入/etc/docker/daemon.json : 如果文件不存在,请创建新文件。

[ root @ docker 01~] # vim/etc/docker/daemon.JSON

{

& #039; 注册镜像& amp; #039; [

& #039; https://hub-mirror.c.163.com& #039;

]

}

请确保此文件符合json标准。 如果不符合标准,Docker将无法启动。

然后,重新开始服务。

系统日期-读取

系统重新开始文档器

检查加速器是否有效

执行以下命令,从结果中看到以下内容时,表示配置成功。

[root@docker01 ~]# docker info #显示系统整体的信息

………………

注册镜像:

https://hub-mirror.c.163.com/

Live Restore Enabled: false

warning:bridge-nf-call-iptablesisdisabled

warning:bridge-nf-call-ip6 tablesisdisabled

Dcoker镜像操作

描述:在Docker运行容器之前,本地对应的镜像必须存在。 如果本地不存在镜像,Docker将从镜像仓库下载镜像。

搜索镜像

[ root @ docker 01~] # dockersearchcentos

namedescriptionstarsofficialautomated

centostheofficialbuildofcentos.5934 [确定]

ansi ble/centos7- ansibleansibleoncentos 7128 [确定]

jdea the/centos-ssh OpenSSH/supervisor/epel/ius/sclre pos--…114 [确定]

con sol/centos-xfce-vnccentoscontainerwith & amp; #039; 头儿& amp; #039; VNC session…114 [确定]

centos/MySQL-57-centos7MySQL 5.7 SQL database server 74

………

从pull镜像中心下载镜像

#格式: docker pull image_name:tag,如果没有tag,则默认值为latest

[ root @ docker 01~] # dockerpullcentos:latest

latest:pullingfromlibrary/centos

8a29a15cefae: Pull complete

digest:sha 256:fe8d 824220415 eed 5477 b 63 addf 40 FB 06c 3b 049404242 b 31982106 AC 204 f 6700

status:downloadednewerimageforcentos:latest

将推送镜像推送到镜像中心

格式: docker push image_name:tag

[ root @ docker 01~~ ] # dockerpushregistry.cn-Beijing.aliyuncs.com/Google _ registry/centos:latest

说明:如有疑问请先忽略。 后面做了私藏的文章再解释。

images列出镜像

[root@docker01 ~]# docker images #或docker image ls

repositorytagimageidcreatedsize

centos latest 470671670 ca C2 months ago 237 MB

ave镜像存储在本地

#格式: docker save -o保存的文件名image_name:tag|image_id

[ root @ docker 01 docker _ test ] # docker save-o centos _ docker _ 2020 04 13.tar centos:latest

[ root @ docker 01 docker _ test ] # ll-h

总计234米

- rw----1root root 234 mapr 1316:21 centos _ docker _ 2020 04 13.tar

使用rmi删除镜像

#格式: dockerrmiimage _ name:tag|image _ id

[ root @ docker 01 docker _ test ] # docker images

repositorytagimageidcreatedsize

centos latest 470671670 ca C2 months ago 237 MB

[ root @ docker 01 docker _ test ] # docker RMI 470671670 CAC #删除镜像

[ root @ docker 01 docker _ test ] # docker images

repositorytagimageidcreatedsize

load导入镜像

#格式: docker load -i image_file

[ root @ docker 01 docker _ test ] # docker load-I centos _ docker _ 2020 04 13.tar

[ root @ docker 01 docker _ test ] # docker images

repositorytagimageidcreatedsize

centos latest 470671670 ca C2 months ago 237 MB

标签

#格式: dockertagsource _ image [:tag ] target _ image [:tag ]

[ root @ docker 01 docker _ test ] # docker images

repositorytagimageidcreatedsize

centos latest 470671670 ca C2 months ago 237 MB

[ root @ docker 01 docker _ test ] # dockertagcentos:latest centos:2020 04 13

[ root @ docker 01 docker _ test ] # docker images

repositorytagimageidcreatedsize

centos 20200413470671670 ca C2 months ago 237 MB

centos latest 470671670 ca C2 months ago 237 MB

使用-根据需要标记docker镜像。

info显示整个系统的信息

[root@docker01 ~]# docker info

Containers: 0

Running: 0

Paused: 0

Stopped: 0

Images: 1

Server Version: 18.06.3-ce

存储驱动程序: overlay 2

备份文件系统: xfs

Supports d_type: true

Native Overlay Diff: true

记录驱动程序: JSON-file

Cgroup Driver: cgroupfs

Plugins :

Volume: local

network:bridgehostmacvlannulloverlay

log:awslogsfluentdgcplogsgelfjournaldjson-filelogentriessplunksyslog

Swarm: inactive

Runtimes: runc

Default Runtime: runc

Init Binary: docker-init

containerd version:468 a 545 B9 edcd 5932818 eb9d e8e 72413 e 616 e 86 e

run cversion:a 592 be b5 BC 4c 4092 B1 B1 BAC 971 afed 27687340 c 5

init version: fec3683

安全选项:

seccomp

配置文件: default

kernel version:3.10.0-1062.el7.x86 _ 64

操作系统: centos Linux7( core ) ) ) ) ) ) ) ) ) )。

OSType: linux

Architecture: x86_64

CPUs: 2

总内存: 1.777 gib

Name: docker01

id:Xihu:xnwu:ii7a:yxuh:boz3: jsgg:j3p2: cu2z:5q ha:5y 64:pz4v:62di

文档root dir:/var/lib/docker

调试模式( client ):false

调试模式( server ):false

registry:https://index.docker.io/v1 /

Labels :

Experimental: false

Insecure Registries :

127.0.0.0/8

注册镜像:

https://hub-mirror.c.163.com/

Live Restore Enabled: false

warning:bridge-nf-call-iptablesisdisabled

warning:bridge-nf-call-ip6 tablesisdisabled

系统镜像卷显示

另一个需要注意的问题是,docker image ls列表中的镜像卷总数不是所有镜像的实际硬盘消耗。 由于Docker镜像是多层存储结构,可以继承和重用,因此不同的镜像使用相同的基础镜像,因此可能具有公共层次。 由于Docker使用的是Union FS,因此只需存储一个相同的层,因此实际镜像硬盘所占用的空间很可能远远小于此列表中的镜像大小总和。

使用以下命令可以快速查看镜像、容器和数据卷占用的空间。

[ root @ docker 01 docker _ test ] # dockersystemdf

类型总活动大小接收可用

Images 2 0 440.1MB 440.1MB (100% )

Containers 0 0 0B 0B

Local Volumes 0 0 0B 0B

Build Cache 0 0 0B 0B

inspect显示镜像或容器的详细信息

#格式:文档inspect镜像ID|镜像名称|容器ID|容器名称

[ root @ docker 01~] # dockerinspectcentos:latest #查看镜像详细信息

[ root @ docker 01~] #查看docker inspect 67ba 647 b 0151 #容器的详细信息

Dcoker容器操作

创建运行容器

#格式: docker run [ options ] image [ command ] [ arg . ]

[ root @ docker 01~~ ] # docker run-I-t-- name centos 01 centos:latest/bin/bash

[root@f7c4da3cecad /]# #此时已进入文档容器

[root@f7c4da3cecad /]# exit #退出容器时,容器将停止【正常】

[root@docker01 ~]#

参数说明:

-i交互操作

-t分配终端

name运行的容器的名称

上次/bin/bash执行的命令

ps视图容器

[root@docker01 ~]# docker ps #查看正在运行的容器

containeridimagecommandcreatedstatusportsnames

[root@docker01 ~]#

[root@docker01 ~]# docker ps -a #显示所有容器,包括运行和停止

containeridimagecommandcreatedstatusportsnames

f7C4da3Cecadcentos:latest& #039; /bin/bash& #039; 4minutesagoexited(0) 36 seconds ago centos01

开始容器

#格式:文档开始容器名称|容器ID

[root@docker01 ~]# docker ps -a

containeridimagecommandcreatedstatusportsnames

f7C4da3Cecadcentos:latest& #039; /bin/bash& #039; 10minutesagoexited(0)3 seconds ago centos01

[ root @ docker 01~] # dockerstartf7C4 da 3c ecad #启动容器

f7c4da3cecad

[root@docker01 ~]# docker ps

containeridimagecommandcreatedstatusportsnames

f7C4da3Cecadcentos:latest& #039; /bin/bash& #039; 10minutesagoup3secondscentos01

重新启动重新启动容器

#格式: docker restart容器名称|容器ID

[root@docker01 ~]# docker ps

containeridimagecommandcreatedstatusportsnames

f7C4da3Cecadcentos:latest& #039; /bin/bash& #039; 15minutesagoup4minutescentos01

[ root @ docker 01~] #重新启动dockerrestartf7C4 da3c ecad #容器

f7c4da3cecad

[root@docker01 ~]# docker ps

containeridimagecommandcreatedstatusportsnames

f7C4da3Cecadcentos:latest& #039; /bin/bash& #039; 15minutesagoup1secondcentos01

停靠集装箱

#格式: docker stop容器名称|容器ID

[root@docker01 ~]# docker ps

containeridimagecommandcreatedstatusportsnames

f7C4da3Cecadcentos:latest& #039; /bin/bash& #039; 3hoursagoup4minutescentos01

[ root @ docker 01~] # dockerstopf7C4 da 3c ecad #停止容器

f7c4da3cecad

[root@docker01 ~]# docker ps -a

containeridimagecommandcreatedstatusportsnames

f7C4da3Cecadcentos:latest& #039; /bin/bash& #039; 3hoursagoexited(0) 10 seconds ago centos01

删除rm容器

#格式: docker rm容器名称|容器ID

[root@docker01 ~]# docker ps -a

containeridimagecommandcreatedstatusportsnames

f7C4da3Cecadcentos:latest& #039; /bin/bash& #039; 3hoursagoexited(0) 10 seconds ago centos01

[ root @ docker 01~] # docker rmf7C4 da 3c ecad #删除停止的容器

f7c4da3cecad

描述:要强制删除正在运行的容器,请使用docker rm -f容器ID。 但是,不建议强制删除容器,以免意外删除。

重命名重命名容器

#格式: docker rename CONTAINER NEW_NAME

[root@docker01 ~]# docker ps

containeridimagecommandcreatedstatusportsnames

67ba647b0151centos:latest& #039; /bin/bash& #039; aboutaminuteagoupaboutaminutecentos 01

[ root @ docker 01~] # docker rename 67ba 647 b 0151 centos 001 #重命名容器

[root@docker01 ~]# docker ps

containeridimagecommandcreatedstatusportsnames

67ba647b0151centos:latest& #039; /bin/bash& #039; 2 minutesagoupaboutaminutecentos 001

exec进入容器或在容器运行时执行命令

进入容器

[ root @ docker 01~] # docker exec-itf7c4da3cecadbash

[root@f7c4da3cecad /]#

说明:不建议用docker attach方式进入容器。

使在容器外指定的容器执行命令

没有-t选项,因为不需要分配tty终端

[ root @ docker 01~] # docker exec-if7C4 da3cecadbash-c & a MP; #039; PS-ef& #039;

UID PID PPID C STIME TTY TIME CMD

root 1010:12 pts/000:00:00/bin/bash

路线780010:19? 00:00:00 ps -ef

复制cp文件或目录

将主机文件或目录复制到文档容器

[ root @ docker 01~] # docker exec-I 67ba 647 b 0151 bash-c & a MP; #039; ls-l/root& #039;

总计12

- rw----1root root 2366 Jan 1321:49 anaconda-ks.CFG

- rw-r-- r--1root root 435 Jan 1321:49 anaconda-post.log

- rw----1root root 2026 Jan 1321:49 original-ks.CFG

[root@docker01 ~]#

[ root @ docker 01~~ ] # docker CP/usr/bin/telnet 67ba 647 b 0151:/root/#复制文件

[ root @ docker 01~~ ] # docker CP/root/basedoptimi 67ba 647 b 0151:/root/#复制目录

[ root @ docker 01~] # docker exec-I 67ba 647 b 0151 bash-c & a MP; #039; ls-l/root& #039;

总112

- rw----1root root 2366 Jan 1321:49 anaconda-ks.CFG

- rw-r-- r--1root root 435 Jan 1321:49 anaconda-post.log

dwxr-xr-x2 root root 30 mar 819:59 basedoptimi

- rw----1root root 2026 Jan 1321:49 original-ks.CFG

-rwxr-xr-x1路由101776aug32017远程网络

将docker容器中的文件或目录复制到宿主机

[ root @ docker 01~] # docker CP 67 ba 647 b 0151:/root/original-ks.CFG/root/#复制文件

[ root @ docker 01~] # docker CP 67 ba 647 b 0151:/etc/root/#复制目录

查看logs容器日志

[root@docker01 ~]# docker ps

containeridimagecommandcreatedstatusportsnames

f7C4da3Cecadcentos:latest& #039; /bin/bash& #039; 3hoursagoup1secondcentos01

#获取容器日志

[ root @ docker 01~] # docker logs-f-- tail 500 f7c4da 3c ecad

………

参数说明:

-f继续打印输出

tail 500打印日志的最后500行

stats容器使用资源统计信息

可用于监视

[root@docker01 ~]# docker stats容器ID|容器名称#始终监视

[ root @ docker 01~~ ] # docker stats-- no-stream容器ID|容器名称#仅显示最初返回的结果,而不是连续监视

在top容器中运行的进程

[root@docker01 ~]# docker ps

containeridimagecommandcreatedstatusportsnames

67ba647b0151centos:latest& #039; /bin/bash& #039; 2hoursagoup2hourscentos001

#查看在容器中运行的进程信息

[ root @ docker 01~] # docker top 67ba 647 b 0151

UID PID PPID C STIME TTY TIME CMD

root 33023285021:13 pts/000:00:00/bin/bash

端口容器映射特定的端口

容器映射端口包括随机端口映射、单端口映射和多端口映射

取得镜像

[ root @ docker 01~~ ] # dockerpullregistry.cn-Beijing.aliyuncs.com/Google _ registry/nginx:1.17

[ root @ docker 01~] # dockertaged 21 b7A8 aee9nginx:1.17

[ root @ docker 01~] # docker images|grep & amp; #039; nginx& #039;

nginx 1.17 ed 21 b7A8 aee 92 weeks ago 127 MB

registry.cn-Beijing.aliyuncs.com/Google _ registry/nginx 1.17 ed 21 b7A8 aee 92 weeks ago 127 MB

随机端口映射

[ root @ docker 01~] # docker run-d-p-- name nginx 01 nginx:1.17

e 90 C9 FAA f8e 3387920 DD 9763 BF 5c 7d F9 DD 17856673868 bb 512 CEC 78741 ff 71dc

[root@docker01 ~]# docker ps

containeridimagecommandcreatedstatusportsnames

e90c9FAAF8e3nginx:1.17& #039; nginx-g& #039; daemonof…& #039; 3 secondsagoup2seconds0.0.0: 1025-80/TCP nginx 01

说明:

0.0.0.0:1025-80/tcp前为宿主机端口,后为容器端口

容器日志:

[ root @ docker 01~] # docker logs-f-- tail 500 nginx 01

浏览器访问:

映射一个指定端口

[ root @ docker 01~] # docker run-d-p81:80-- name ngin x02 nginx:1.17

0478222 f0dc 981883 f 25504164 be3af7da 49248886 CEE 7386 CCC 89 b 80 cc57 a 1

[ root @ docker 01~] # docker PS|grep & amp; #039; nginx02& #039;

0478222f0DCnginx:1.17& #039; nginx-g& #039; daemonof…& #039; 29 secondsagoup 28 seconds0.0.0: 81-80/TCP nginx 02

浏览器访问:

映射多个指定端口

[ root @ docker 01~] # docker run-d-p85:80-p445:443-- name nginx 03 nginx:1.17

586 e 52 ff8e 934 BC 827 c8 d 7753 a 532 b 9062 BD 045799 d 0658 a008 e371 E6 ECD 09 c

[ root @ docker 01~] # docker PS|grep & amp; #039; nginx03& #039;

586e52ff8e9nginx:1.17& #039; nginx-g& #039; daemonof…& #039; 12 secondsagoup 11 seconds0.0.0: 85-80/TCP,0.0.0.0:445

阅读以上内容,您是否熟悉如何使用Docker镜像和容器? 另外,如果想学习更多,欢迎使用信息频道。

详情请访问云服务器、域名注册、虚拟主机的问题,请访问西部数码代理商官方网站: www.chenqinet.cn

相关推荐

后台-系统设置-扩展变量-手机广告位-内容页底部广告位3