Docker基础命令详解(3)

下面看另一种启动容器的方式:

[root@docker ~]# docker run CentOS /usr/bin/bash -c ls / Unable to find image 'centos:latest' locally latest: Pulling from library/centos 8a29a15cefae: Pull complete Digest: sha256:fe8d824220415eed5477b63addf40fb06c3b049404242b31982106ac204f6700 Status: Downloaded newer image for centos:latest bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var [root@docker ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 4835176a7d8e centos "/usr/bin/bash -c ls…" About a minute ago Exited (0) About a minute ago affectionate_keldysh a1a2e8468189 nginx:latest "/bin/bash" 28 minutes ago Up 17 minutes 80/tcp gallant_feynman

-c参数表示的是需要执行的命令,这种方式适用于一次执行,Exited (0) 表示正常正确退出,及终止运行。

docker run的命令执行流程为:先从本地查找镜像(本地没有image不表示容器不依赖image),如果没有会从公共仓库中下载;再通过镜像创建并且启动一个容器;分配一个文件系统给容器,在只读的镜像层外面挂载一层可读写层;从宿主机配置的网桥接口中桥接一个虚拟接口到容器中;分配一个地址池中的IP地址给容器;执行用户指定的应用程序;执行之后容器被终止(后台运行除外)。

后台运行:run 后面加参数-d即可。

2、容器运行与终止

想要在运行中的容器停下来,使用docker stop 命令

命令格式:docker stop [OPTIONS] CONTAINER [CONTAINER...]

实例演示:

[root@docker ~]# docker stop a1a2e8468189 a1a2e8468189 [root@docker ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 4835176a7d8e centos "/usr/bin/bash -c ls…" 9 minutes ago Exited (0) 9 minutes ago affectionate_keldysh a1a2e8468189 nginx:latest "/bin/bash" 36 minutes ago Exited (0) 3 seconds ago gallant_feynman 3、容器的进入

想要进入容器进行相应操作时可以使用docker exec命令进入运行着的容器。

命令格式:docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

[root@docker ~]# docker ps -a #检查容器是否是运行状态(up) CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 4835176a7d8e centos "/usr/bin/bash -c ls…" 12 minutes ago Exited (0) 12 minutes ago affectionate_keldysh a1a2e8468189 nginx:latest "/bin/bash" 38 minutes ago Up 4 seconds 80/tcp gallant_feynman [root@docker ~]# docker exec -it a1a2e8468189 /bin/bash #进入伪终端 root@a1a2e8468189:/# ls bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var root@a1a2e8468189:/# exit #使用exit退出伪终端 exit [root@docker ~]# 4、容器的导出和导入

类似镜像,用户也可以将容器从一台机器迁移到另一台机器。在迁移过程中,首先需要将已经创建好的容器导出为文件,使用docker export实现,无论这个容器是处于运行状态还是停止状态均可以导出。导出之后可将导出文件传输到其他机器,通过对应的导入命令实现迁移过程。

容器导出命令:docker export

命令格式:docker export [OPTIONS] CONTAINER

实例演示:一个运行状态一个停止状态,都演示

[root@docker ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 4835176a7d8e centos "/usr/bin/bash -c ls…" 21 minutes ago Exited (0) 21 minutes ago affectionate_keldysh a1a2e8468189 nginx:latest "/bin/bash" 48 minutes ago Up 9 minutes 80/tcp gallant_feynman

运行中的容器导出:

[root@docker ~]# docker export a1a2e8468189 > nginx_contain [root@docker ~]# ls anaconda-ks.cfg initial-setup-ks.cfg nginx nginx_contain 公共 模板 视频 图片 文档 下载 音乐 桌面 [root@docker ~]# ll 总用量 253448 -rw-------. 1 root root 1954 4月 6 08:49 anaconda-ks.cfg -rw-r--r--. 1 root root 2002 4月 6 08:50 initial-setup-ks.cfg -rw-------. 1 root root 130618880 4月 6 14:04 nginx #镜像存出的文件 -rw-r--r--. 1 root root 128899072 4月 6 16:04 nginx_contain #容器导出文件 二者权限不同

终止的容器导出:

[root@docker ~]# docker export 4835176a7d8e > centos_contain [root@docker ~]# ls anaconda-ks.cfg initial-setup-ks.cfg nginx_contain 模板 图片 下载 桌面 centos_contain nginx 公共 视频 文档 音乐

导出的文件从本地拷贝到远程服务器,之后使用docker import命令导入,成为镜像

容器导入命令:docker import

命令格式:docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/90ab4abfcadcfea12cf49b2451ab4abb.html