rule 发表于 2018-5-26 07:35:07

Docker学习与实践(三)

三、容器的操作

1.容器的启动
  ①新建并启动

# docker run ubuntu:16.04 /bin/echo "hello world"
hello world
  ②启动一个bash终端,允许用户进行交互。

# docker run -ti ubuntu:16.04 /bin/bash
root@edf8af896cc0:/# pwd
/
#选项 '-t' 开启一个伪终端,'-i' 让容器的标准输入保持打开。
  ③后台运行

# docker run -d ubuntu:16.04 /bin/sh -c "while true; do echo hello world; sleep 10; done"
cab4112e91fb0d6eae3762ec2a07b13798e908503a8f58799ac50fd9b4aa7e37
  #此时容器会在后台运行并不会把输出的结果打印到宿主机上面,可以使用docker logs查看输出信息。

# docker logs cab41
hello world
hello world
hello world
hello world

2.容器的终止

# docker container ls
CONTAINER ID      IMAGE               COMMAND                  CREATED             STATUS            PORTS               NAMES
cab4112e91fb      ubuntu:16.04      "/bin/sh -c 'while t…"   5 minutes ago       Up 5 minutes                     
# docker container stop cab41
cab41

  #查看终止的容器

# docker container ls -a
CONTAINER ID      IMAGE               COMMAND                  CREATED             STATUS                            PORTS               NAMES
cab4112e91fb      ubuntu:16.04      "/bin/sh -c 'while t…"   7 minutes ago       Exited (137) About a minute ago                     angry_wescoff
  #可以使用docker container start来启动处于终止状态的容器

# docker container start cab41
cab41
# docker container ls
CONTAINER ID      IMAGE               COMMAND                  CREATED             STATUS            PORTS               NAMES
cab4112e91fb      ubuntu:16.04      "/bin/sh -c 'while t…"   10 minutes ago      Up 5 seconds                            angry_wescoff
# docker attach 4417
root@4417b64c1c7f:/# pwd
/
root@4417b64c1c7f:/# exit
exit

3.进入容器
  ①attack(输入exit会导致容器的终止)

# docker run -itd ubuntu
4417b64c1c7f5c59bc446467e6d3c033ebbe6412f6e51fa722e463ff2b41a3a9
# docker container ls
CONTAINER ID      IMAGE               COMMAND             CREATED             STATUS            PORTS               NAMES
4417b64c1c7f      ubuntu            "/bin/bash"         8 seconds ago       Up 7 seconds                            hungry_easley
  ②exec(输入exit不会导致容器的终止)

# docker run -itd ubuntu
5276352cf8d11ec07c12d07adfa209453299822aae779ac9ff2f401e7ff1fcb1
# docker container ls
CONTAINER ID      IMAGE               COMMAND             CREATED             STATUS            PORTS               NAMES
5276352cf8d1      ubuntu            "/bin/bash"         8 seconds ago       Up 8 seconds                            blissful_edison
# docker exec -it 5276 bash
root@5276352cf8d1:/# whoami
root
root@5276352cf8d1:/# exit
exit

4.容器的导出和导入
  ①导出

# docker export 4417 > test.tar
# ls
test.tar
  ②导入

# cat test.tar | docker import - test/ubuntu:v1.1
sha256:fb0e8d9dcaba2d018ec1fe26394f3b4989db55ace695d1c685c5e753fbe8ed9e
# docker image ls
REPOSITORY          TAG               IMAGE ID            CREATED             SIZE
test/ubuntu         v1.1                fb0e8d9dcaba      3 seconds ago       85.8MB
  #也可以通过指定URL或者某个目录来导入

# docker import /root/test.tar test/ubuntu:v1.2
sha256:e33803dd759481e27cd807536f28fe8ab0cfddd9c3bae2a15b95ea8b7645172b
# docker image ls
REPOSITORY          TAG               IMAGE ID            CREATED             SIZE
test/ubuntu         v1.2                e33803dd7594      3 seconds ago       85.8MB
test/ubuntu         v1.1                fb0e8d9dcaba      3 minutes ago       85.8MB


5.删除容器
  ①删除一个处于终止状态的容器

# docker container rm edf8af
edf8af
#如果要删除一个运行中的容器,可以添加 -f 参数来删除。
  ②清除所有处于终止状态的容器

# docker container prune
WARNING! This will remove all stopped containers.
Are you sure you want to continue? y
Deleted Containers:
4417b64c1c7f5c59bc446467e6d3c033ebbe6412f6e51fa722e463ff2b41a3a9
5276352cf8d11ec07c12d07adfa209453299822aae779ac9ff2f401e7ff1fcb1
99aee81f7684d59c72d2c1bbc933fd052f2158e833fb08988803108de613de24
cab4112e91fb0d6eae3762ec2a07b13798e908503a8f58799ac50fd9b4aa7e37
  #学习文档地址:https://github.com/yeasy/docker_practice/blob/master/SUMMARY.md
页: [1]
查看完整版本: Docker学习与实践(三)