标签:默认 cat volume 标准输入 etc mac doc vol 打开
启动容器有两种方式,一种是基于镜像新建一个容器并启动,另外一个是将在终止状态的容器重新启动。
docker run
常用选项:
例如启动一个centos容器:
[root@Docker_Machine_192.168.31.130 ~]# docker run -tid centos
354861680ae5cdd0b807ad70f0968afa2a7717c8c55f0271cd76c95f905cf4ae
[root@Docker_Machine_192.168.31.130 ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
354861680ae5 centos "/bin/bash" 4 seconds ago Up 4 seconds competent_jang
容器启动后回到docker host 的终端并 返回该容器的 ID。
当利用 docker run 来创建容器时,Docker 在后台运行的标准操作包括:
其他常用的选项:
具体参考 docker run --help
docker start [id|name] 或者 docker container start [id|name]
我们先停止刚刚创建的centos容器,再启动
[root@Docker_Machine_192.168.31.130 ~]# docker stop 354861680ae5
354861680ae5
[root@Docker_Machine_192.168.31.130 ~]# docker start 354861680ae5
354861680ae5
[root@Docker_Machine_192.168.31.130 ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
354861680ae5 centos "/bin/bash" 8 minutes ago Up 8 seconds competent_jang
用docker stop [id|name] 或者 docker container stop[id|name] 命令停止正在运行的容器,用docker start [id|name] 或者 docker container start [id|name]命令停止终止状态的容器
docker container ls 或者docker ps
查看运行中的容器docker container ls 或者docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
354861680ae5 centos "/bin/bash" 14 minutes ago Up 6 minutes competent_jang
034b2c372153 registry "/entrypoint.sh /etc…" 3 weeks ago Up About an hour 127.0.0.1:5000->5000/tcp musing_shockley
查看所有的容器docker container ls -a 或者docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
354861680ae5 centos "/bin/bash" 14 minutes ago Up 6 minutes competent_jang
58a473f60b3c my_redis_server:v3.2.7 "/usr/local/redis/bi…" 6 days ago Exited (255) 6 days ago 6001/tcp infallible_meitner
1c8a8bbf61e9 centos "/bin/bash" 7 days ago Exited (255) 6 days ago zealous_bose
277daebf58a7 my_nginx_server:v1.13.11 "/usr/local/nginx/sb…" 12 days ago Exited (255) 6 days ago 80/tcp inspiring_heisenberg
75d87a4c17a0 centos "/bin/bash" 13 days ago Exited (255) 6 days ago wonderful_goodall
034b2c372153 registry "/entrypoint.sh /etc…" 3 weeks ago Up About an hour 127.0.0.1:5000->5000/tcp musing_shockley
docker stop [id|name] 或 docker container stop[id|name]
[root@Docker_Machine_192.168.31.130 ~]# docker container stop 354861680ae5
354861680ae5
此外,当 Docker 容器中应用终结时,容器也自动终止。
docker attach或 docker exec
常用的方式:
docker exec -it <container> bash|sh
attach 与 exec 主要区别:
docker export
[root@Docker_Machine_192.168.31.130 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
58a473f60b3c my_redis_server:v3.2.7 "/usr/local/redis/bi…" 6 days ago Up About a minute 6001/tcp infallible_meitner
[root@Docker_Machine_192.168.31.130 ~]# docker export 58a473f60b3c > my_redis_server:v3.2.7.tar
docker import 或 docker load
[root@Docker_Machine_192.168.31.130 ~]# cat my_redis_server\:v3.2.7.tar | docker import - me/my_redis_server:v3.2.7
sha256:a2d3c452841fac44bd6bed3006f48dca2e5f5e68b76d207fd14619063fc251e6
[root@Docker_Machine_192.168.31.130 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
me/my_redis_server v3.2.7 a2d3c452841f 3 seconds ago 281MB
不用docker import my_redis_server:v3.2.7.tar 直接导入,是因为本地镜像库已经有了my_redis_server:v3.2.7 这个镜像了。
想要清楚的了解docker load
与docker import
命令的区别,就必须了解镜像与容器的区别:
镜像是容器的基础,可以简单的理解为镜像是我们启动虚拟机时需要的镜像,容器时虚拟机成功启动后,运行的服务。
想要了解docker load
与docker import
命令的区别,还必须知道docker save
与docker export
命令:
docker save images_name
:将一个镜像导出为文件,再使用docker load
命令将文件导入为一个镜像,会保存该镜像的的所有历史记录。比docker export
命令导出的文件大,很好理解,因为会保存镜像的所有历史记录。docker export container_id
:将一个容器导出为文件,再使用docker import
命令将容器导入成为一个新的镜像,但是相比docker save
命令,容器文件会丢失所有元数据和历史记录,仅保存容器当时的状态,相当于虚拟机快照。标签:默认 cat volume 标准输入 etc mac doc vol 打开
原文地址:https://www.cnblogs.com/wshenjin/p/9547368.html