docker nginx 部署命令

分类: Docker
拉取镜像

docker pull nginx

不加标签默认会拉取最新的(latest)镜像

创建目录

mkdir -p /home/nginx/www /home/nginx/logs /home/nginx/conf


先不指定映射路径启动一个容器

docker run -d -p 80:80 —name nginx nginx

1fdcd13457a6eaacb511878e10d84ffbe48fe63fd1fb3705f58b2d4195b151d8

这里如果直接指定映射路径运行会报错
  1. $ docker run -d -p 80:80 --name mynginx \
  2. -v /home/nginx/www:/usr/share/nginx/html \
  3. -v /home/nginx/logs:/var/log/nginx \
  4. -v /home/nginx/nginx.conf:/etc/nginx/nginx.conf \
  5. -v /home/nginx/conf.d:/etc/nginx/conf.d \
  6. -v /home/cert:/home/cert \
  7. nginx
  8. $ dab56c13f9e76aad37fcf73411c78d495a6466f1c0d214949650dbae44adddf4
  9. $ docker: Error response from daemon: OCI runtime create failed: container_linux.go:345: starting container process caused "process_linux.go:424: container init caused \"rootfs_linux.go:58: mounting \\\"/home/devuser/apps/nginx/conf/nginx.conf\\\" to rootfs \\\"/home/docker_image/overlay2/e40ccaf4d845a9af92487b47cbc4d505c5c776800ef8887c5b43833b10661427/merged\\\" at \\\"/home/docker_image/overlay2/e40ccaf4d845a9af92487b47cbc4d505c5c776800ef8887c5b43833b10661427/merged/etc/nginx/nginx.conf\\\" caused \\\"not a directory\\\"\"": unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type.
将运行容器的配置文件复制到宿主机目录下

docker cp 1fdcd13457a6:/etc/nginx/nginx.conf /home/nginx

删除容器并重新运行
  1. $ docker stop 1fdcd1345
  2. $ docker rm 1fdcd1345
  3. $ docker run -d -p 80:80 --name mynginx \
  4. -v /home/nginx/www:/usr/share/nginx/html \
  5. -v /home/nginx/logs:/var/log/nginx \
  6. -v /home/nginx/nginx.conf:/etc/nginx/nginx.conf \
  7. -v /home/nginx/conf.d:/etc/nginx/conf.d \
  8. -v /home/cert:/home/cert \
  9. nginx
更新配置后重新加载

如果要重新载入 NGINX 可以使用以下命令发送 HUP 信号到容器:

docker kill -s HUP container-name

重启 NGINX 容器命令:

docker restart container-name

类似于

nginx -s reload

标签: Nginx Docker CentOS

上一篇: Docker 安装 Redis

下一篇: 【Docker系列】 安装 Nginx

by 2023-08-07 23:49:05
篇笔记

学习笔记