第四章:操作Docker容器
2017-08-03 本文已影响0人
xrichardyan
4.1创建容器
1.新建容器
$ docker create -it ubuntu:latest # 创建一个ubuntu:latest容器
$ docker ps -a # 查看所有容器
2.启动容器
$ docker start dd # 启动容器 dd为容器的ID简写(同下面)
$ docker ps # 查看运行中的容器
3.新建并启动容器
$ docker run ubuntu /bin/echo 'Hello World!' # run = create +start
4.守护态运行(后台运行)
添加 -d 参数来实现
$ docker run -d ubuntu /bin/sh -c "while true; do echo hello world; sleep 1; done"
此时,要获取容器的输出信息,可以使用:
$ docker logs dd # 获取dd进程的日志
4.2终止容器
$ docker stop dd # 终止dd容器
查看所有容器的ID
$ docker ps -pa # 查看所有容器的ID
启动&重新启动
$ docker start dd # 将一个终止的容器重新启动
$ docker restart dd # 将一个运行态的容器先终止,然后重新启动它
4.3进入容器
1.attach命令
$ docker run -itd ubuntu # 启动守护态进程
7417a1e8c07ffa3f69d335a837390578c420862576d752144901a4cf89f5683b
$ docker ps # 查看进程中的容器
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7417a1e8c07f ubuntu "/bin/bash" About a minute ago Up About a minute sad_leavitt
$ docker attach 7417a1e8c07f # 进入容器 此时可与容器交互
root@7417a1e8c07f:/#
2.exec命令
例如进入上面创建的容器
$ docker exec -it 7417a1e8c07f /bin/bash
root@7417a1e8c07f:/#
4.4删除容器
$ docker rm dd # dd 为容器ID简写
默认情况下,docker rm命令只能删除处于终止状态或退出状态的容器,不能删除处于运行状态的容器。
如果要直接删除一个运行中的容器,可以添加 -f 参数强制删除。(Docker会先发送SIGKILL信号给容器,终止其中的应用,之后强制删除,如下所示:
$ docker run -itd ubuntu # 先开始一个守护态进程
90991da80cbed20c8bf23c2ba35d69053581708947c6a514bd18917ac8d23b66
$ docker rm 90991da80cbe # 如果直接删除会出现报错
Error response from daemon: You cannot remove a running container 90991da80cbed20c8bf23c2ba35d69053581708947c6a514bd18917ac8d23b66. Stop the container before attempting removal or force remove
$ docker rm -f 90991da80cbe #添加-f参数强制删除
90991da80cbe
4.5导入和导出容器
1.导出容器
$ docker ps -a # 查看所有容器
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e697625ef19c ubuntu "/bin/bash" 2 hours ago Up 2 hours reverent_jones
7417a1e8c07f ubuntu "/bin/bash" 2 hours ago Exited (0) 2 hours ago sad_leavitt
$ sudo docker export -o test_end.tar 741 # 通过 -o 选项来指定导出的tar文件名
$ ls
test_end.tar
$ docker export e69 >test_run.tar #另一种方法
$ ls
test_run.tar test_end.tar
之后,可将导出的tar文件传输到其他机器上,然后再通过导入命令导入到系统中,从而实现容器的迁移。
2.导入容器
$ docker import test_run.tar test/ubuntu:v1.0 # 导入test_run.tar并添加标签
sha256:d1cea21eca71b8e287289cf78d0afbe0a7378b1704b03b5b9bcdd4d10470ec21
$ docker images # 查看镜像
REPOSITORY TAG IMAGE ID CREATED SIZE
test/ubuntu v1.0 d1cea21eca71 8 seconds ago 97.8MB
docker import 类似于 docker load