docker使用–(1)容器篇

docker使用--(1)容器篇

1. docker下载(略)

2. 配置docker镜像文件(略,在这里我用的是阿里云的镜像)

3. docker拉取镜像

在这里我拉取的是英伟达的ubuntu镜像: nvidia/cuda:10.0-base-ubuntu16.04
也可以拉取其他镜像。
docker pull nvidia/cuda:10.0-base-ubuntu16.04

4.查看镜像

docker images

docker使用--(1)容器篇
可看到镜像已经拉取成功。

5 . 用指定镜像创建容器

分为两种:docker run 和docker create

5.1 docker run

在这里,我使用刚才拉取的nvidia/cuda:10.0-base-ubuntu16.04镜像,创建一个容器:
docker run -t -i nvidia/cuda:10.0-base-ubuntu16.04 /bin/bash
docker使用--(1)容器篇
-t 表示在新容器内指定一个伪终端或终端
-i 表示允许我们对容器内的 (STDIN) 进行交互
我们在容器内还指定了一个新的命令: /bin/bash ,这将在容器内启动 bash shell
这样我们就可以像平时操作 Ubuntu 一样操作该容器了

命令

-d, --detach Detach模式,默认为守护进程模式,即容器以后台方式运行。
–rm=false 若容器内的进程终止则自动删除容器,禁止和-d选项一起使用。
–sig-proxy=true 将所有信号传递给进程,非TTY模式也一样,但不能传递SIGCHLD、SIGKILL、SIGSTOP信号。

运行一个在后台执行的容器,同时使用控制台管理。

$ docker run -i -t -d ubuntu:latest

运行一个带命令且在后台不断执行的容器,不直接展示容器内部信息。

$ docker run -d ubuntu:latest ping www.docker.com

运行一个在后台不断执行的容器,同时带有命令,程序被终止后还能重启继续跑,可用控制台管理。

$ docker run -d --restart=always ubuntu:latest ping www.docker.com

为容器指定一个名字

$ docker run -d --name=ubuntu_server ubuntu:latest

容器暴露80端口并指定宿主机81端口与其通信(宿主机端口:容器端口)

$ docker run -d --name=ubuntu -p 81:80 ubuntu:latest

指定容器内目录与宿主机目录共享(宿主机目录:容器目录)

$ docker run -d --name=ubuntu_server -v /home/www:/var/www ubuntu:latest

设置宿主机与docker的共享目录

$ docker run -d -i -t -p 80:80 -v /share/swoft:/var/www/swoft --name swoft swoft/swoft /bin/bash

5.2 docker create

docker create与docker run不同的是,它只创建容器,不进入容器。使用方法略

6. 保存新建的容器

(1)在第5中已经进入到新建容器中,此时打开新的终端,首先查看正在运行的容器:
docker使用--(1)容器篇

可以看到刚才创建的容器正在运行(为什么该容器与其他两个容器后面的参数不同,是由于创建该容器时,并未指定端口和名称,具体设置查看第5点中的命令)

(2)docker commit 7cbe3ac99b25 honsia/test:v7.30
7cbe3ac99b25为刚才创建的镜像ID
honsia/test:v7.30为新镜像保存的名称
docker使用--(1)容器篇
(3)查看是否保存成功: docker images
docker使用--(1)容器篇
保存成功!

7.启动容器

docker start
(***注意镜像ID和容器ID,启动容器,不是镜像!!)
docker使用--(1)容器篇

8. 退出容器

exit
docker使用--(1)容器篇

以下格式为docker + 命令 + **** 表示:无需进入容器即可操作。**** 为容器ID

9. 重启容器

docker restart ****

10. 暂停容器中所有进程

docker pause ****

11. 重启暂停的内容

docker unpause ****

12. 删除容器–区别删除镜像

docker rm ****
docker rm -f (强制删除) ****

docker rmi 镜像名称:TAG
docker使用--(1)容器篇

13. 获取容器的日志

docker logs ****

镜像创建、编辑、上传请见:docker使用–(2)镜像篇

相关文章: