本文主要详细介绍Docker镜像和容器的常用 *** 作。通过示例代码非常详细,对大家的学习或者工作都有一定的参考价值。有需要的朋友下面和边肖一起学习。
镜像加速
在中国,有时很难从DockerHub中提取图像,因此您可以配置图像加速。国内很多云服务商都提供国内加速服务,比如:
网易云加速https://hub-mirror.c.163.com
阿里云加速(需要登录才能获得):https://cr.console.aliyun.com/cn-hangzhou/mirrors
国内各大云服务商都提供了Docker镜像加速服务。建议根据云平台运行Docker选择相应的图片加速服务。详情请参考官方文件。
在CentOS7系统上,请在/etc/docker/daemon.json中写入以下内容(如果该文件不存在,请创建一个新文件)
[root@docker01~]#vim/etc/docker/daemon.json { "registry-mirrors":[ "https://hub-mirror.c.163.com" ] }注意,文件必须符合json规范,否则Docker将无法启动。
然后重新启动该服务。
systemctldaemon-reload systemctlrestartdocker检查加速是否工作
执行以下命令。如果您从结果中看到以下内容,则表示配置成功。
[root@docker01~]#dockerinfo#显示整个系统的信息 ……………… RegistryMirrors: https://hub-mirror.c.163.com/ LiveRestoreEnabled:false WARNING:bridge-nf-call-iptablesisdisabled WARNING:bridge-nf-call-ip6tablesisdisabledDcoker镜像 *** 作
注意:在运行容器之前,Docker需要相应的映像在本地存在。如果映像不在本地,Docker将从映像库中下载映像。
搜索镜
[root@docker01~]#dockersearchcentos NAMEDESCRIPTIONSTARSOFFICIALAUTOMATED centosTheofficialbuildofCentOS.5934[OK] ansible/centos7-ansibleAnsibleonCentos7128[OK] jdeathe/centos-sshOpenSSH/Supervisor/EPEL/IUS/SCLRepos-…114[OK] consol/centos-xfce-vncCentoscontainerwith"headless"VNCsession…114[OK] centos/mysql-57-centos7MySQL5.7SQLdatabaseserver74 …………Pull从镜像中心下载图像
#格式:dockerpull<image_name>:<tag>,如果没有tag,默认为latest [root@docker01~]#dockerpullcentos:latest latest:Pullingfromlibrary/centos 8a29a15cefae:Pullcomplete Digest:sha256:fe8d824220415eed5477b63addf40fb06c3b049404242b31982106ac204f6700 Status:Downloadednewerimageforcentos:latest将后视镜推到后视镜中心
格式:dockerpush<image_name>:<tag> [root@docker01~]#dockerpushregistry.cn-beijing.aliyuncs.com/google_registry/centos:latest注:如果有疑问,可以先忽略,后面关于建私仓的文章再解释。
图像列表图像
[root@docker01~]#dockerimages#或者dockerimagels REPOSITORYTAGIMAGEIDCREATEDSIZE centoslatest470671670cac2monthsago237MB将镜像保存在本地。
#格式:dockersave-o<保存的文件名><image_name:tag>|<image_id> [root@docker01docker_test]#dockersave-ocentos_docker_20200413.tarcentos:latest [root@docker01docker_test]#ll-h total234M -rw-------1rootroot234MApr1316:21centos_docker_20200413.tarRmi删除镜像
#格式:dockerrmi<image_name:tag>|<image_id> [root@docker01docker_test]#dockerimages REPOSITORYTAGIMAGEIDCREATEDSIZE centoslatest470671670cac2monthsago237MB [root@docker01docker_test]#dockerrmi470671670cac#删除镜像 [root@docker01docker_test]#dockerimages REPOSITORYTAGIMAGEIDCREATEDSIZE导入镜像
#格式:dockerload-i<image_file> [root@docker01docker_test]#dockerload-icentos_docker_20200413.tar [root@docker01docker_test]#dockerimages REPOSITORYTAGIMAGEIDCREATEDSIZE centoslatest470671670cac2monthsago237MB标签标签
#格式:dockertagSOURCE_IMAGE[:TAG]TARGET_IMAGE[:TAG] [root@docker01docker_test]#dockerimages REPOSITORYTAGIMAGEIDCREATEDSIZE centoslatest470671670cac2monthsago237MB [root@docker01docker_test]#dockertagcentos:latestcentos:20200413 [root@docker01docker_test]#dockerimages REPOSITORYTAGIMAGEIDCREATEDSIZE centos20200413470671670cac2monthsago237MB centoslatest470671670cac2monthsago237MB使用:根据需要给docker图像一个新标签。
信息显示整个系统的信息。
[root@docker01~]#dockerinfo Containers:0 Running:0 Paused:0 Stopped:0 Images:1 ServerVersion:18.06.3-ce StorageDriver:overlay2 BackingFilesystem:xfs Supportsd_type:true NativeOverlayDiff:true LoggingDriver:json-file CgroupDriver:cgroupfs Plugins: Volume:local Network:bridgehostmacvlannulloverlay Log:awslogsfluentdgcplogsgelfjournaldjson-filelogentriessplunksyslog Swarm:inactive Runtimes:runc DefaultRuntime:runc InitBinary:docker-init containerdversion:468a545b9edcd5932818eb9de8e72413e616e86e runcversion:a592beb5bc4c4092b1b1bac971afed27687340c5 initversion:fec3683 SecurityOptions: seccomp Profile:default KernelVersion:3.10.0-1062.el7.x86_64 OperatingSystem:CentOSLinux7(Core) OSType:linux Architecture:x86_64 CPUs:2 TotalMemory:1.777GiB Name:docker01 ID:XIHU:XNWU:II7A:YXUH:BOZ3:JSGG:J3P2:CU2Z:5QHA:5Y64:PZ4V:62DI DockerRootDir:/var/lib/docker DebugMode(client):false DebugMode(server):false Registry:https://index.docker.io/v1/ Labels: Experimental:false InsecureRegistries: 127.0.0.0/8 RegistryMirrors: https://hub-mirror.c.163.com/ LiveRestoreEnabled:false WARNING:bridge-nf-call-iptablesisdisabled WARNING:bridge-nf-call-ip6tablesisdisabled系统的镜像卷视图
另一个需要注意的是,docker镜像ls列表中镜像卷的总和并不是所有镜像的实际硬盘消耗。因为Docker镜像是多层存储结构,可以继承和重用,所以不同的镜像由于使用相同的基本镜像,可能具有相同的层。由于Docker使用的是UnionFS,同一层只需要保存一个副本,所以实际镜像硬盘空占用的空间很可能比这个列表中镜像大小之和小很多。
您可以通过以下命令轻松查看镜像、容器和数据卷占用的空空间。
[root@docker01docker_test]#dockersystemdf TYPETOTALACTIVESIZERECLAIMABLE Images20440.1MB440.1MB(100%) Containers000B0B LocalVolumes000B0B BuildCache000B0B检查显示镜像或容器的详细信息。
#格式:dockerinspect<镜像ID>|<镜像名>|<容器ID>|<容器名> [root@docker01~]#dockerinspectcentos:latest#显示镜像详情 [root@docker01~]#dockerinspect67ba647b0151#显示容器详情Dcoker容器 *** 作
运行创建容器
#格式:dockerrun[OPTIONS]IMAGE[COMMAND][ARG...] [root@docker01~]#dockerrun-i-t--namecentos01centos:latest/bin/bash [root@f7c4da3cecad/]##此时已进入docker容器 [root@f7c4da3cecad/]#exit#退出容器,此时容器会停止【正常情况】 [root@docker01~]#参数描述:
-i交互式 *** 作
-tAssignaterminal
-Name要运行的容器名称
要执行的最后一个/bin/bash命令
Ps视图容器
[root@docker01~]#dockerps#查看正在运行的容器 CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES [root@docker01~]# [root@docker01~]#dockerps-a#查看所有容器,包括运行和停止的 CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES f7c4da3cecadcentos:latest"/bin/bash"4minutesagoExited(0)36secondsagocentos01启动容器
#格式:dockerstart<容器名>|<容器ID> [root@docker01~]#dockerps-a CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES f7c4da3cecadcentos:latest"/bin/bash"10minutesagoExited(0)3secondsagocentos01 [root@docker01~]#dockerstartf7c4da3cecad#启动容器 f7c4da3cecad [root@docker01~]#dockerps CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES f7c4da3cecadcentos:latest"/bin/bash"10minutesagoUp3secondscentos01重启重启容器
#格式:dockerrestart<容器名>|<容器ID> [root@docker01~]#dockerps CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES f7c4da3cecadcentos:latest"/bin/bash"15minutesagoUp4minutescentos01 [root@docker01~]#dockerrestartf7c4da3cecad#重启容器 f7c4da3cecad [root@docker01~]#dockerps CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES f7c4da3cecadcentos:latest"/bin/bash"15minutesagoUp1secondcentos01停止容器
#格式:dockerstop<容器名>|<容器ID> [root@docker01~]#dockerps CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES f7c4da3cecadcentos:latest"/bin/bash"3hoursagoUp4minutescentos01 [root@docker01~]#dockerstopf7c4da3cecad#停止容器 f7c4da3cecad [root@docker01~]#dockerps-a CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES f7c4da3cecadcentos:latest"/bin/bash"3hoursagoExited(0)10secondsagocentos01Rm删除容器
#格式:dockerrm<容器名>|<容器ID> [root@docker01~]#dockerps-a CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES f7c4da3cecadcentos:latest"/bin/bash"3hoursagoExited(0)10secondsagocentos01 [root@docker01~]#dockerrmf7c4da3cecad#删除已停止的容器 f7c4da3cecad说明:如果想强制删除一个正在运行的容器,使用DockerRM-F<容器id>:。但是,不建议在生产环境中强制删除容器,以防止意外删除。
重命名容器重命名
#格式:dockerrenameCONTAINERNEW_NAME [root@docker01~]#dockerps CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES 67ba647b0151centos:latest"/bin/bash"AboutaminuteagoUpAboutaminutecentos01 [root@docker01~]#dockerrename67ba647b0151centos001#容器重命名 [root@docker01~]#dockerps CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES 67ba647b0151centos:latest"/bin/bash"2minutesagoUpAboutaminutecentos001进入exec容器或执行run容器中的命令。
进入容器
[root@docker01~]#dockerexec-itf7c4da3cecadbash [root@f7c4da3cecad/]#注意:不建议dockerattach进入容器。
让指定的容器在容器外执行命令。
#不要有-t选项,因为不需要分配tty终端 [root@docker01~]#dockerexec-if7c4da3cecadbash-c"ps-ef" UIDPIDPPIDCSTIMETTYTIMECMD root10010:12pts/000:00:00/bin/bash root780010:19?00:00:00ps-efCp复制文件或目录
将主机文件或目录复制到docker容器中。
[root@docker01~]#dockerexec-i67ba647b0151bash-c"ls-l/root" total12 -rw-------1rootroot2366Jan1321:49anaconda-ks.cfg -rw-r--r--1rootroot435Jan1321:49anaconda-post.log -rw-------1rootroot2026Jan1321:49original-ks.cfg [root@docker01~]# [root@docker01~]#dockercp/usr/bin/telnet67ba647b0151:/root/#拷贝文件 [root@docker01~]#dockercp/root/basedOptimi67ba647b0151:/root/#拷贝目录 [root@docker01~]#dockerexec-i67ba647b0151bash-c"ls-l/root" total112 -rw-------1rootroot2366Jan1321:49anaconda-ks.cfg -rw-r--r--1rootroot435Jan1321:49anaconda-post.log drwxr-xr-x2rootroot30Mar819:59basedOptimi -rw-------1rootroot2026Jan1321:49original-ks.cfg -rwxr-xr-x1rootroot101776Aug32017telnet将docker容器中的文件或目录复制到主机上。
[root@docker01~]#dockercp67ba647b0151:/root/original-ks.cfg/root/#拷贝文件 [root@docker01~]#dockercp67ba647b0151:/etc/root/#拷贝目录日志查看容器日志
[root@docker01~]#dockerps CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES f7c4da3cecadcentos:latest"/bin/bash"3hoursagoUp1secondcentos01 #获取容器日志 [root@docker01~]#dockerlogs-f--tail500f7c4da3cecad …………参数描述:
-f连续打印输出
-Tail500打印日志的最后500行
Stats容器使用资源统计
可用于监控。
[root@docker01~]#dockerstats<容器ID>|<容器名称>#持续监控 [root@docker01~]#dockerstats--no-stream<容器ID>|<容器名称>#不是持续监控,只显示第一次返回的结果顶层容器中运行的进程
[root@docker01~]#dockerps CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES 67ba647b0151centos:latest"/bin/bash"2hoursagoUp2hourscentos001 #查看容器中运行的进程信息 [root@docker01~]#dockertop67ba647b0151 UIDPIDPPIDCSTIMETTYTIMECMD root33023285021:13pts/000:00:00/bin/bash端口容器映射特定的端口。
容器映射端口包括:随机端口映射、单端口映射和多端口映射。
获取镜像
[root@docker01~]#dockerpullregistry.cn-beijing.aliyuncs.com/google_registry/nginx:1.17 [root@docker01~]#dockertaged21b7a8aee9nginx:1.17 [root@docker01~]#dockerimages|grep'nginx' nginx1.17ed21b7a8aee92weeksago127MB registry.cn-beijing.aliyuncs.com/google_registry/nginx1.17ed21b7a8aee92weeksago127MB映射随机端口
[root@docker01~]#dockerrun-d-P--namenginx01nginx:1.17 e90c9faaf8e3387920dd9763bf5c7df9dd17856673868bb512cec78741ff71dc [root@docker01~]#dockerps CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES e90c9faaf8e3nginx:1.17"nginx-g'daemonof…"3secondsagoUp2seconds0.0.0.0:1025->80/tcpnginx01描述:
0.0.0.0:1025->80/tcp前面是主机端口,后面是容器端口。
容器日志:
[root@docker01~]#dockerlogs-f--tail500nginx01浏览器访问:
映射一个指定的端口。
[root@docker01~]#dockerrun-d-p81:80--namenginx02nginx:1.17 04478222f0dc981883f25504164be3af7da49248886cee7386ccc89b80cc57a1 [root@docker01~]#dockerps|grep'nginx02' 04478222f0dcnginx:1.17"nginx-g'daemonof…"29secondsagoUp28seconds0.0.0.0:81->80/tcpnginx02浏览器访问:
映射多个指定的端口
[root@docker01~]#dockerrun-d-p85:80-p445:443--namenginx03nginx:1.17 5886e52ff8e934bc827c8d7753a532b9062bd045799d0658a008e371e6ecd09c [root@docker01~]#dockerps|grep'nginx03' 5886e52ff8e9nginx:1.17"nginx-g'daemonof…"12secondsagoUp11seconds0.0.0.0:85->80/tcp,0.0.0.0:445->443/tcpnginx03阅读
1。Docker的介绍和安装
关于详细解释Docker镜像和容器的常见 *** 作的这篇文章到此为止。有关Docker映像和容器 *** 作的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望大家以后能多多支持我们!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)