1.拉取镜像
docker pull nginx
2.查看镜像
docker images
3.创建目录及文件
mkdir -p /usr/local/gep/nginx/conf
mkdir -p /usr/local/gep/nginx/html
touch /usr/local/gep/nginx/conf/nginx.conf
4.在nginx.conf中配置多个端口监听
worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 10011; server_name localhost; location / { root /usr/share/nginx/html; # nginx工作目录是容器的而非宿主机 index index.html index.htm; } # axios 配置代理转发 location /redis/ { proxy_pass http://www.redis.cn/; } } server { listen 10012; server_name localhost; location / { root /usr/share/nginx/html; # nginx工作目录是容器的而非宿主机 index index.html index.htm; } # axios 配置代理转发 location /zhihu/ { proxy_pass https://www.zhihu.com/; } } }
5.创建容器并启动
docker run -it -d --name gep_nginx -p 10012:10012 -p 10011:10011 -v /usr/local/gep/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /usr/local/gep/nginx/html:/usr/share/nginx/html nginx
参数说明:
--name 给镜像也别名
-p 是端口
-v 表示挂载文件或目录,左边为宿主机位置,右边为容器位置,这样在宿主机修改的文件或目录会自动到容器内。
如果不做配置文件的同步,宿主机修改的配置文件在容器无法生效;如果不做目录的挂载,通过nginx访问的资源会报404。
5. 查看容器