docker run
程序员文章站
2022-05-15 13:10:18
...
docker run
构建容器的实质:为进程封箱
启动一个进程,使用独立的文件系统、网络资源,一套独立的进程树。语法:
docker run [options] IMAGE [[CMD] ARG…]
选项
–add-host=[ ]
添加一条主机到 ip 的映射,可以多次出现–cidfile=""
容器id 文件,类似于 pid 文件-d --detach=true|false
在后台运行容器,并打印容器 id–dns=[ ]
设置 dns 地址-e --env=[ ]
为容器的目标进程指定环境变量–expose=[ ]
暴露端口-h --hostname=""
指定主机名-i --interactive=true|false
默认 false–ip=""
设置容器 ip–ip6=""
设置容器 ipv6 地址–name=""
为容器分配一个名字-P --publish-all=true|false
暴露所有的容器端口,映射到主机的随机端口
默认:false-p --public=[ ]
暴露容器端口到指定的主机端口
格式:ip:hPort:cPort、ip::cPort、hPort:cPort、cPort
默认值:ip 0.0.0.0、hPort:随机数
实例
创建一个容器
$ docker run -d --name tomcat8 tomcat:8.5
$ docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=1 mysql:5
映射端口供外部使用
- 大写 P 作为参数,hPort随机
$ docker run -d --name tomcat8_6 -P tomcat:8.5
fd60a0ccd8914376cbe5df0bb2188c0e569605c3abfe9a0c4205999525274c2a
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fd60a0ccd891 tomcat:8.5 "catalina.sh run" 6 seconds ago Up 6 seconds 0.0.0.0:32768->8080/tcp tomcat8_6
$ list
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp6 0 0 :::32768 :::* LISTEN 8755/docker-proxy-c
- 格式:-p cPort
$ docker run -d --name tomcat8_6 -p 8080 tomcat:8.5
5eaf18f6d093033aa27cdb389117ed4f82b6b2bee0e223405e20d895bef35241
$ list
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp6 0 0 :::32769 :::* LISTEN 9070/docker-proxy-c
- 格式:-p hPort:cPort
$ docker run -d --name tomcat8_6 -p 80:8080 tomcat:8.5
22080f13c145430f200aa48d9c32307f55fd9b42155f6d6a52ae4dec24442627
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
22080f13c145 tomcat:8.5 "catalina.sh run" 6 seconds ago Up 5 seconds 0.0.0.0:80->8080/tcp tomcat8_6
$ list
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp6 0 0 :::80 :::* LISTEN 9312/docker-proxy-c
- 格式:-p ip::cPort
$ docker run -d --name tomcat8_6 -p 127.0.0.1::8080 tomcat:8.5
3956a73e0219340ed529c1a1ac902562c2434032c92bb746b0416a5c9fd9db04
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3956a73e0219 tomcat:8.5 "catalina.sh run" 4 seconds ago Up 4 seconds 127.0.0.1:32768->8080/tcp tomcat8_6
$ list
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:32768 0.0.0.0:* LISTEN 9502/docker-proxy-c
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1138/sshd
- 格式:-p ip:hPort:cPort
$ docker run -d --name tomcat8_6 -p 127.0.0.1:8000:8080 tomcat:8.5
bc4dcfdd3c0bfe05657ccca77ea1e61c33222b2c2fa59b7af99939f268616442
$ list
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:8000 0.0.0.0:* LISTEN 9749/docker-proxy-c
创建并加载数据卷容器
加载外部卷
# 挂在主机目录作为容器卷
$ docker run -v /var/db:/data1 -i -t fedora bash
# 主机开启 SELinux,执行会报错。须执行:
$ chcon -Rt svirt_sandbox_file_t /var/db
下一篇: docker run
推荐阅读
-
PHP:使用Zend对源码加密、Zend Guard安装以及Zend Guard Run-time support mi_PHP教程
-
nginx - 访问域名,出现 connect() to unix:/var/run/php5-fpm.sock failed
-
在Docker上用Nacos1.3容器连接MySQL5.6和8.0.18容器进入持久化的具体操作(Nacos单机版)
-
CentOS7下Docker的安装教程
-
DockerPHP: 基于Docker容器化PHP开发环境解决方案
-
centos下非yum方式安装docker环境
-
基于 Docker 开发 NodeJS 应用_node.js
-
详解如何修改 Docker 默认网桥地址
-
Docker常见错误汇总
-
Docker常见错误汇总