1、Nginx 搜索,下载,查看
- # 搜索 nginx 镜像
- docker search nginx
-
- # 下载 nginx 镜像
- docker pull nginx
-
- # 查看所有镜像
- docker images
2、新建 Nginx 配置文件夹,准备挂载文件
- mkdir -p /home/20221125/mynginx/conf
- mkdir -p /home/20221125/mynginx/log
- mkdir -p /home/20221125/mynginx/html
- mkdir -p /home/20221125/mynginx/www
- mkdir -p /home/20221125/mynginx/{conf,log,html,www}
-
- mkdir -p /home/20221125/mynginx/conf && cd /home/20221125/mynginx
- pwd
3、生成容器
- # 生成容器
- docker run --name nginx -p 9001:80 -d nginx
-
- # 容器IP地址
- docker inspect nginx
-
- # 查看容器IP地址
- docker inspect nginx | grep 'IPAddress'
-
- # 查看容器 hostname、ip地址、环境变量
- docker exec nginx hostname
- docker exec nginx ip addr
- docker exec nginx env
-
- # 进入容器
- docker exec -it nginx /bin/bash
- docker exec -it nginx bash
4、容器文件 复制到 宿主机,把容器文件复制到刚才创建的文件夹中
- # 容器文件 复制到 宿主机
- docker cp <容器路径> <宿主机路径>
-
- # 将容器nginx.conf文件复制到宿主机
- docker cp nginx:/etc/nginx/nginx.conf /home/20221125/mynginx/conf/nginx.conf
-
- # 将容器conf.d文件夹下内容复制到宿主机
- docker cp nginx:/etc/nginx/conf.d /home/20221125/mynginx/conf/conf.d
-
- # 将容器中的html文件夹复制到宿主机
- docker cp nginx:/usr/share/nginx/html /home/20221125/mynginx/
5、删除刚才创建的 nginx 容器
- # 直接执行docker rm nginx或者以容器id方式关闭容器
- # 找到nginx对应的容器id
- docker ps -a
-
- # 关闭该容器
- docker stop nginx
-
- # 删除该容器
- docker rm nginx
-
- # 删除正在运行的nginx容器
- docker rm -f nginx
-
- # 停止和删除容器
- docker stop nginx && docker rm nginx
6、生成容器 并且 创建挂载【执行成功】
- docker run \
- -p 8086:80 \
- --name first_nginx \
- -v /home/20221125/mynginx/conf/nginx.conf:/etc/nginx/nginx.conf \
- -v /home/20221125/mynginx/conf/conf.d:/etc/nginx/conf.d \
- -v /home/20221125/mynginx/log:/var/log/nginx \
- -v /home/20221125/mynginx/html:/usr/share/nginx/html \
- -d nginx:latest
-
- # 参数说明
- -v 宿主机路径:容器路径
- -v 本地宿主机目录:容器目录
-
- # 进入容器
- docker exec -it first_nginx /bin/bash
- docker exec -it first_nginx bash
单行模式,生成容器 并且 创建挂载【执行成功】
- docker run -p 8086:80 --name first_nginx -v /home/20221125/mynginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /home/20221125/mynginx/conf/conf.d:/etc/nginx/conf.d -v /home/20221125/mynginx/log:/var/log/nginx -v /home/20221125/mynginx/html:/usr/share/nginx/html -d nginx:latest
-
- # 进入容器
- docker exec -it first_nginx /bin/bash
- docker exec -it first_nginx bash
7、查看容器IP地址
- # 查看容器IP地址
- docker inspect first_nginx
- # "IPAddress": "172.17.0.2"
-
- # 查看容器IP地址
- docker inspect first_nginx | grep 'IPAddress'
-
- # 查看容器 hostname、ip地址、环境变量
- docker exec first_nginx hostname
- docker exec first_nginx ip addr
- docker exec first_nginx env
-
- # 进入容器
- docker exec -it first_nginx /bin/bash
- docker exec -it first_nginx bash
-
- # 停止和删除容器
- docker stop first_nginx && docker rm first_nginx
8、检查是否安装成功
- dokcer ps
-
- curl 127.0.0.1:8086
-
- # 打开浏览器,地址栏输入 http://localhost:8086/
9、修改 /home/20221125/mynginx/html/index.html 页面文件,随便修改点内容,重启容器
- # 跳转目录
- cd /home/20221125/mynginx/html
-
- # 编辑文件
- vim index.html
-
- # 输入字母【i】切换到编辑模式,随便修改点内容
- # 按Esc键,回到命令模式
- # 输入【:wq】保存退出
-
- # 重启容器
- docker restart first_nginx
-
- curl 127.0.0.1:8086
10、Nginx 反向代理,修改 /home/20221125/mynginx/conf/conf.d/default.conf 配置文件
- # 跳转目录
- cd /home/20221125/mynginx/conf/conf.d
- # 编辑文件
- vim default.conf
- # 输入字母【i】切换到编辑模式,修改如下
-
- server {
- location / {
- proxy_pass http://172.17.0.3:80;
- root /usr/share/nginx/html;
- index index.html index.htm;
- }
- }
-
- # 172.17.0.3:80 信息说明
- # 172.17.0.3 是容器IP地址
- # 80 是容器端口
-
- # 按Esc键,回到命令模式
- # 输入【:wq】保存退出
-
- # 重启容器
- docker restart first_nginx
11、Nginx 负载均衡,修改 /home/20221125/mynginx/conf/conf.d/default.conf 配置文件
- # 跳转目录
- cd /home/20221125/mynginx/conf/conf.d
- # 编辑文件
- vim default.conf
- # 输入字母【i】切换到编辑模式,修改如下
-
- upstream docker_http {
- server 172.17.0.3:80 weight=1;
- server 172.17.0.4:80 weight=1;
- server 172.17.0.5:80 weight=1;
- }
- server {
- location / {
- proxy_pass http://docker_http;
- root /usr/share/nginx/html;
- index index.html index.htm;
- }
- }
-
- # 172.17.0.3:80 信息说明
- # 172.17.0.3 是容器IP地址
- # 172.17.0.4 是容器IP地址
- # 172.17.0.5 是容器IP地址
- # 80 是容器端口
-
- # 按Esc键,回到命令模式
- # 输入【:wq】保存退出
-
- # 重启容器
- docker restart first_nginx
12、总结
- # nginx 配置文件目录 /etc/nginx
- cd /etc/nginx
- ls -l
-
- # nginx 默认首页 html 文件目录 /usr/share/nginx/html
- cd /usr/share/nginx/html
- ls -l
-
- # nginx 日志文件目录 /var/log/nginx
- cd /var/log/nginx
- ls -l
-
- # 退出容器
- exit
13、Docker 部署网址,ASP.NET Core Docker 部署 Dockerfile
- # Step 1: 把源码拷贝到Linux服务器【/home/king/20221125/DockerProject】目录
-
- # Step 2: 把Dockerfile拷贝到Linux服务器【/home/king/20221125/DockerProject/Dockerfile】目录
-
- # Step 3: 跳转到部署文件的根目录
- cd /home/king/20221125/DockerProject
-
- # Step 4: 执行 build 命令,生成一个镜像文件,镜像名称叫做【net3v1125:2221】
- docker build -t net3v1125:2221 -f Dockerfile .
-
- # Step 5: 执行 run 命令,创建并运行容器,注意上边的镜像名称使用的是【net3v1125:2221】
- docker run -itd -p 8081:80 --name docker8081 net3v1125:2221
- docker run -itd -p 8082:80 --name docker8082 net3v1125:2221
- docker run -itd -p 8083:80 --name docker8083 net3v1125:2221
-
- # Step 6: 查看容器IP地址
- docker inspect first_nginx
- docker inspect docker8081
- docker inspect docker8082
- docker inspect docker8083
-
- # Step 7: 获取容器 hostname、ip地址、环境变量
- docker exec first_nginx hostname
- docker exec first_nginx ip addr
- docker exec first_nginx env
数据包转发
- # 跳转目录
- cd /usr/lib/sysctl.d
-
- # 查看文件
- cat /usr/lib/sysctl.d/50-default.conf
-
- # 编辑文件
- vim /usr/lib/sysctl.d/50-default.conf
-
- # 末尾添加内容
- net.ipv4.ip_forward = 1
-
- # 重启network
- systemctl restart network
防火墙、开放端口
- # 查看防火墙状态
- systemctl status firewalld
- 或
- firewall-cmd --state
- # 暂时关闭防火墙
- systemctl stop firewalld
- # 永久关闭防火墙(慎用)
- systemctl disable firewalld
- # 开启防火墙
- systemctl start firewalld
- # 开放指定端口
- firewall-cmd --zone=public --add-port=8067/tcp --permanent
- firewall-cmd --zone=public --add-port=9002/tcp --permanent
- # 关闭指定端口
- firewall-cmd --zone=public --remove-port=8080/tcp --permanent
- # 立即生效
- firewall-cmd --reload
- # 查看开放的端口
- firewall-cmd --zone=public --list-ports
- # Step 1: 创建 docker-compose.yml 文件
- cd /home/20221125/mynginx
- vim docker-compose.yml
-
- # Step 2: 编辑内容如下
- version: "3.0"
- services:
- nginxServer:
- image: nginx
- container_name: first_nginx
- restart: always
- privileged: true
- ports:
- - 8086:80
- - 80:80
- - 443:443
- volumes:
- - /home/20221125/mynginx/conf/nginx.conf:/etc/nginx/nginx.conf
- - /home/20221125/mynginx/conf/conf.d:/etc/nginx/conf.d
- - /home/20221125/mynginx/log:/var/log/nginx
- - /home/20221125/mynginx/html:/usr/share/nginx/html
-
- # Step 3: 执行命令
- docker-compose up -d
*
*
*