目录
一、创建容器
使用 docker container run 命令创建容器,该命令有很多的选项,这些选项可以让容器运行时具备我们想要的状态。
$ docker container run --help
docker container run 常用选项:
OPTIONS | DESCRIBE |
-i,--interactive | 交互式接口 |
-t,--tty | 分配一个伪终端 |
-d,--detach | 在后台运行容器 |
-e,--env | 设置环境变量 |
-p,--publish list | 发布容器端口到主机 |
-P,--publish-all | 发布容器所有EXPOSE的端口到主机的随机端口 |
--name STRING | 指定容器别名 |
-h,--hostname | 设置容器主机名 |
--ip STRING | 指定容器ip,只能用于自定义网络 |
--network | 连接容器到一个网络 |
--mount mount | 将文件系统附加到容器 |
-v,--volume list | 绑定挂载一个卷 |
--rm | 当容器退出时自动移除它 |
Example:
创建一个 tomcat 容器,取名 tomcat_1,并放入后台运行
$ docker container run --name tomcat_1 -d tomcat:7.0
154038abdd941bd62ae252fd814effc15e595a72fa900fb0a9fe13ea180caad5
列出当前正在跑的容器
$ docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
154038abdd94 tomcat:7.0 "catalina.sh run" 56 seconds ago Up 55 seconds 8080/tcp tomcat_1
字段说明:
CONTAINER ID:随机生成的容器ID
IMAGE:该容器是基于哪个镜像创建的
COMMAND:启动容器运行的命令
CREATED:容器创建时间
STATUS:运行状态
PORTS:容器监听的端口
NAMES:该容器的名称
指定容器名称、主机名和设置环境变量:
$ docker container run -d --name tomcat_2 -e VAR="hello,world" -h tomcat_2.example.com tomcat:7.0
ba11428a6b30a6829cb096fc9019a82b9845016d51a1a8b56a3c9d7155f19b46
$ docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ba11428a6b30 tomcat:7.0 "catalina.sh run" 32 seconds ago Up 31 seconds 8080/tcp tomcat_2
154038abdd94 tomcat:7.0 "catalina.sh run" 9 minutes ago Up 9 minutes 8080/tcp tomcat_1
进入容器 tomcat_2
$ docker container exec -it tomcat_2 /bin/bash
查看变量VAR和主机名
root@tomcat_2:/usr/local/tomcat# echo $VAR
hello,world
root@tomcat_2:/usr/local/tomcat# hostname
tomcat_2.example.com
退出容器
Ctrl + p + q
创建一个容器 tomcat_3,从主机上暴露一个 8899端口 到容器的 8080端口,代表主机监听 0.0.0.0 的 8899端口,将访问这个端口的请求转发到该容器的 8080端口
$ docker container run -d --name tomcat_3 -p 8899:8080 tomcat:7.0
6db0b5bb72c405d47a0dbf0d3c8f7c7676ad34b13a51ffc64fec05b74de5d02d
$ docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6db0b5bb72c4 tomcat:7.0 "catalina.sh run" 8 seconds ago Up 7 seconds 0.0.0.0:8899->8080/tcp tomcat_3
ba11428a6b30 tomcat:7.0 "catalina.sh run" 8 minutes ago Up 8 minutes 8080/tcp tomcat_2
154038abdd94 tomcat:7.0 "catalina.sh run" 17 minutes ago Up 17 minutes 8080/tcp tomcat_1