Maison > Article > Opération et maintenance > Comment résoudre le problème lorsque Docker ne parvient pas à exécuter le fichier de configuration de liaison nginx
extraire l'image :
docker pull nginx
Ensuite, exécutez la commande de démarrage :
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
Si le fichier /mydata/nginx/conf/nginx.conf
n'existe pas, une erreur Docker apparaîtra ici, car Docker n'autorise pas la liaison de fichiers qui n'existent pas. /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
vide. Bien que docker ne signale pas d'erreur, nginx ne peut pas démarrer normalement dans le conteneur. /code>, nginx sera dans l'état exit
ou toujours restart
, car le fonctionnement de nginx dépend du fichier de configuration nginx.conf
configuration associée. 🎜🎜Idées et méthodes de solutions🎜🎜Exécutez d'abord un conteneur sans utiliser la liaison -v, puis copiez les fichiers pertinents dans le conteneur directement à l'emplacement spécifié. Après cela, vous pouvez supprimer le conteneur et exécuter directement la commande de démarrage précédente. 🎜🎜Les opérations spécifiques sont les suivantes : 🎜🎜Créez d'abord les dossiers appropriés : 🎜rrreee🎜Exécutez un conteneur nginx : 🎜rrreee🎜Copiez les fichiers et dossiers de configuration dans le répertoire spécifié sur l'hôte : 🎜rrreee🎜Supprimez le conteneur d'origine : 🎜rrreee🎜Exécutez Démarrez la commande, -v lie le volume concerné : 🎜rrreee🎜Déplacez les fichiers dans le répertoire conf.d
copié vers le bon emplacement : 🎜rrreee🎜De cette façon, le conteneur nginx peut fonctionner normalement, et nous transmettons ce qui précède. L'opération mappe à la fois le fichier nginx.conf
et le répertoire conf.d
à l'hôte hôte. À l'avenir, vous devrez le faire. modifier le fichier nginx.conf
ou le remplacer par conf.d
Pour ajouter un fichier .conf
, il suffit d'opérer à l'emplacement correspondant sur l'hôte. 🎜Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!