풀 이미지:
docker pull nginx
그런 다음 시작 명령을 실행합니다:
docker run -d -p 80:80 -p 443:443 --name nginx \ -v /mydata/nginx/html:/usr/share/nginx/html \ -v /mydata/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \ -v /mydata/nginx/conf/conf.d:/etc/nginx/conf.d \ -v /mydata/nginx/logs:/var/log/nginx \ -v /mydata/nginx/cache:/var/cache/nginx \ --restart=always nginx
/mydata/nginx/conf/nginx.conf
파일이 존재하지 않는 경우, docker는 존재하지 않는 파일 바인딩을 허용하지 않기 때문에 여기에 docker 오류가 나타납니다. /mydata/nginx/conf/nginx.conf
文件不存在,这里会出现docker报错,因为docker不允许绑定不存在的文件。
而直接新建一个空的/mydata/nginx/conf/nginx.conf
虽然docker不会报错,但是nginx却无法在容器中正常启动,通过docker ps -a
命令查看,nginx会处于exit
或者一直restart
状态,因为nginx的运行依赖于nginx.conf
这个配置文件中的相关配置。
先运行一个容器,不使用-v绑定,然后将容器中的相关文件直接copy到指定位置,之后就可以删除容器,直接运行之前的启动命令了。
具体操作如下:
首先创建好相关文件夹:
mkdir -p \ /mydata/nginx/html \ /mydata/nginx/conf \ /mydata/nginx/logs \ /mydata/nginx/cache
跑起来一个nginx容器:
docker run -d --name nginx nginx
复制配置文件和文件夹到宿主机指定目录:
docker cp nginx:/etc/nginx/nginx.conf /mydata/nginx/conf/ docker cp nginx:/etc/nginx/conf.d /mydata/nginx/conf.d
删除原容器:
docker rm -f nginx
运行启动命令,-v绑定相关卷:
docker run -d -p 80:80 -p 443:443 --name nginx \ -v /mydata/nginx/html:/usr/share/nginx/html \ -v /mydata/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \ -v /mydata/nginx/conf/conf.d:/etc/nginx/conf.d \ -v /mydata/nginx/logs:/var/log/nginx \ -v /mydata/nginx/cache:/var/cache/nginx \ --restart=always nginx
移动copy的conf.d
目录中的文件到正确的位置:
mv /mydata/nginx/conf.d/* /mydata/nginx/conf/conf.d/ rm -rf /mydata/nginx/conf.d
这样nginx容器就可以正常运行,并且我们通过上面的操作将nginx.conf
文件和conf.d
目录都映射到了宿主主机上,以后需要修改nginx.conf
文件或者为conf.d
添加.conf
/mydata/nginx/conf/nginx.conf
를 직접 생성하세요. docker는 오류를 보고하지 않지만 nginx는 컨테이너에서 정상적으로 시작할 수 없습니다. /code> 명령을 실행하면 nginx는 exit
또는 항상 restart
상태가 됩니다. nginx의 작업은 nginx.conf
구성 파일에 따라 달라지기 때문입니다. 관련 구성. 🎜🎜솔루션 아이디어 및 방법🎜🎜먼저 -v 바인딩을 사용하지 않고 컨테이너를 실행한 다음 컨테이너의 관련 파일을 지정된 위치에 직접 복사한 다음 컨테이너를 삭제하고 이전 시작 명령을 직접 실행할 수 있습니다. 🎜🎜특정 작업은 다음과 같습니다. 🎜🎜먼저 관련 폴더를 생성합니다: 🎜rrreee🎜nginx 컨테이너 실행: 🎜rrreee🎜구성 파일과 폴더를 호스트의 지정된 디렉터리에 복사합니다: 🎜rrreee🎜원래 컨테이너를 삭제합니다. 🎜rrreee🎜Run 명령을 시작하면 -v가 해당 볼륨을 바인딩합니다. 🎜rrreee🎜 복사된 conf.d
디렉터리의 파일을 올바른 위치인 🎜rrreee🎜로 이동합니다. 이렇게 하면 nginx 컨테이너가 정상적으로 실행될 수 있으며 위의 작업은 nginx.conf
파일과 conf.d
디렉터리를 모두 호스트 호스트에 매핑합니다. nginx.conf
파일을 수정하거나 conf.d
로 교체하세요. .conf
파일을 추가하려면 해당 위치에서만 작업하면 됩니다. 호스트에서. 🎜위 내용은 docker가 nginx 바인딩 구성 파일을 실행하지 못할 때 문제를 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!