docker run
docker run :创建一个新的容器并运行一个命令
语法
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
OPTIONS说明:
-
-a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
-
-d: 后台运行容器,并返回容器ID;
-
-i: 以交互模式运行容器,通常与 -t 同时使用;
-
-P: 随机端口映射,容器内部端口随机映射到主机的端口
-
-p: 指定端口映射,格式为:主机(宿主)端口:容器端口
-
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
-
--name="nginx-lb": 为容器指定一个名称;
-
--dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;
-
--dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;
-
-h "mars": 指定容器的hostname;
-
-e username="ritchie": 设置环境变量;
-
--env-file=[]: 从指定文件读入环境变量;
-
--cpuset="0-2" or --cpuset="0,1,2": 绑定容器到指定CPU运行;
-
-m :设置容器使用内存最大值;
-
--net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;
-
--link=[]: 添加链接到另一个容器;
-
--expose=[]: 开放一个端口或一组端口;
-
--volume , -v: 绑定一个卷
实例
使用docker镜像tomcat:latest以后台模式启动一个容器,并将容器命名为mytomcat。
tomcat:latest tomcat表示要运行tomcat程序。 latest表示运行最新版本。
- 首先查看下本地库镜像,没有tomcat镜像;
[[email protected] ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
- 运行最新tomcat镜像,发现开始下载;
- 再查看下本地库镜像,发现已经存在最新tomcat镜像;
[[email protected] ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
tomcat latest c43a65faae57 4 weeks ago 667MB
- 同时查看进程,发现tomcat正运行中
[[email protected] ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e6c24833399a tomcat:latest "catalina.sh run" 36 seconds ago Up 34 seconds 8080/tcp mytomcat
再次开启新容器
- 运行最新tomcat镜像,运行名称为mytomcat2 ;
[[email protected] ~]# docker run --name mytomcat2 -d tomcat:latest
24dd6e344d68e9350ca1889b6e5759e2b6d564bba88e61f6486c1513a504b7fd
- 查看docker进程,image版本显示是最新;
[[email protected] ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d612eb7d2a8f tomcat:latest "catalina.sh run" 59 seconds ago Up 59 seconds 8080/tcp mytomcat2
e6c24833399a tomcat:latest "catalina.sh run" 4 minutes ago Up 4 minutes 8080/tcp mytomcat
综上所述,运行一个镜像会按照以下逻辑进行,见图;
上一篇: docker run
下一篇: docker-compose安装与使用