设置容器的端口映射
run [-P] [-p]
- -P , --publish-all=true|false 默认为false :将为容器所有暴露的端口进行映射.
示例:docker run -P -i -t centos /bin/bash
-p, --publish=[ ] :给指定的端口进行映射.
示例:docker run -p 80 -i -t centos /bin/bash
- 方式二:hostPort:containerPort
示例:docker run -p 8080:80 -i -t centos /bin/bash
示例:docker run -p 0.0.0.0:80 -i -t centos /bin/bash
- 方式四:ip:hostPort:containerPort
示例:docker run -p 0.0.0.0:8080:80 -i -t centos /bin/bash
Nginx部署流程
- 创建映射80端口的交互式容器
- 安装Nginx
- 安装文本编辑器vim
- 创建静态页面
- 修改Nginx配置文件
- 运行Nginx
- 验证网站访问
步骤
docker run -p 80 --name=web -it centos /bin/bash
- 2.进入容器后,需要安装nginx和vim,执行如下命令:
yum install -y wget
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum install -y epel-release
yum install -y nginx
- 3.在容器内部,进入到/usr/share/nginx/html 目录,修改index.html文件

vim index.html
- 5.运行nginx命令,启动服务 /usr/sbin/nginx
- 6.Ctrl+P和Ctrl+Q退出容器.
- 7.在宿主机上使用curl命令查看是否能访问.
curl http://127.0.0.1:32769/index.html

其他问题:
- 1.使用docker inspect 容器名可以查看容器的ip地址.
- 2.使用容器的ip也是能访问到该静态页面的.

- 3.使用docker stop 容器名 关闭容器.
- 4.使用docker start 容器名 启动容器.
- 5.使用docker top 容器名,发现重新启动容器后,nginx服务并没有重新启动.
- 6.我们可以使用docker exec 容器名 nginx 来启动容器中的nginx服务. docker exec -it web1 /usr/sbin/nginx
- 7.我们发现使用原来的端口映射已经访问不到了,当重新启动容器会重新给我们进行端口的映射.