# 1. 随便拉起一个实例,要的是里面的配置文件

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

# 2. 拷贝nginx中的文件到宿主机目录

docker cp nginx:/etc/nginx/nginx.conf .
docker cp nginx:/etc/nginx/conf.d .
docker cp nginx:/usr/share/nginx/html .

# 3. 删除默认实例

docker stop nginx && docker rm nginx

#4.用docker-compose运行容器

version: '3.1'
services:
  nginx:
    restart: always
    image: nginx
    container_name: nginx
    ports:
      - 6789:80
    volumes:
      - /app/nginx/conf/nginx.conf:/etc/nginx/nginx.conf
      - /app/nginx/conf/conf.d:/etc/nginx/conf.d
      - /app/nginx/conf/html:/usr/share/nginx/html
      - /app/nginx/conf/logs:/var/log/nginx

说明:

先把nginx 中的配置文件拷贝出来,这样配置文件的所属用户就是当前执行拷贝的用户属组

然后再将相关配置文件以及目录挂载进容器,由于容器内是用root 用户运行,文件的属性是跟着宿主机的属性走,这样就可以实现文件共享访问。

权限的走向是由宿主机到容器内部

类似还有像mysql 的配置文件。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐