设置容器的端口映射
run [-P] [-p]
-P , --publish-all=true|false 默认为false :将为容器所有暴露的端口进行映射.
示例:docker run -P -i -t centos /bin/bash
-p, --publish=[ ] :给指定的端口进行映射.
方式一:containerPort
示例:docker run -p 80 -i -t centos /bin/bash
方式二:hostPort:containerPort
示例:docker run -p 8080:80 -i -t centos /bin/bash
方式三:ip::containerPort
示例: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验证网站访问
步骤
1.创建一个守护式容器,并映射容器的80端口.
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/nginx6.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/nginx7.我们发现使用原来的端口映射已经访问不到了,当重新启动容器会重新给我们进行端口的映射.