docker 安装 nginx

docker 安装

docker run --name nginx_3000 -p 3000:80 -d nginx

直接访问 localhost:3000 即可打开 nginx 配置成功页面

docker-compose

创建链接目录

root目录下

root@DESKTOP-91MGDB0:~# pwd
/root
root@DESKTOP-91MGDB0:~# mkdir -p nginx/logs
root@DESKTOP-91MGDB0:~# mkdir -p nginx/html
root@DESKTOP-91MGDB0:~# mkdir -p nginx/conf

使用 docker-compose.yml 文件

本文是wsl2安装

root@DESKTOP-91MGDB0:~/nginx# pwd
/root/nginx
root@DESKTOP-91MGDB0:~/nginx# cp /mnt/c/Users/lenovo/Desktop/docker-compose.yml docker-compose.yml

docker-compose.yml

建议把 docker-compose.yml 文件放在 nginx 目录下

version: "3"
services:
  nginx:
    image: nginx:latest
    restart: always
    container_name: nginx
    hostname: 127.0.0.1
    ports:
      - 80:80
    volumes:
      - $PWD/nginx.conf:/etc/nginx/nginx.conf # nginx 主配置文件,includes /etc/nginx/conf.d 里的配置文件
      - $PWD/logs:/var/log/nginx # nginx 相关日志
    #   - /root/nginx/html:/usr/share/nginx/html
      - /mnt/c/workspace/blog/chgocn.github.io/public:/usr/share/nginx/html # nginx 配置的 webapp 的目录
      - $PWD/conf:/etc/nginx/conf.d # nginx server 代码块配置文件
      - $PWD/password:/etc/nginx/password # 使用 httpd-tools 设置网页认证访问

拉取镜像并启动容器

docker pull nginx & docker-compse up -d

导出 nginx 容器内连接的文件和目录

root@DESKTOP-91MGDB0:~/nginx# docker cp nginx:/etc/nginx/nginx.conf nginx.conf
root@DESKTOP-91MGDB0:~/nginx# docker cp nginx:/usr/share/nginx/html ./
root@DESKTOP-91MGDB0:~/nginx# docker cp nginx:/etc/nginx/conf.d ./conf/

重新更新docker-compose.yml 文件并重新创建容器

root@DESKTOP-91MGDB0:~/nginx# cp /mnt/c/Users/lenovo/Desktop/docker-compose.yml docker-compose.yml
root@DESKTOP-91MGDB0:~/nginx# docker-compose up -d

docker 使用注意

  • 不支持直接挂载文件,只能挂载文件夹
  • 想要挂载文件,必须宿主机也要有对应的同名文件

解决方案:
可以先不挂载 nginx.conf 文件
先从容器中复制 nginx.conf 出来
然后可以自行修改 nginx.conf,自定义配置项
创建正式使用的 nginx 容器


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 chgocn@gmail.com
笔记