Docker는 개발 및 배포에 널리 사용되는 인기 있는 컨테이너화 플랫폼입니다. 그러나 Docker 컨테이너를 사용할 때 때때로 시작 오류가 발생할 수 있습니다. 이 기사에서는 몇 가지 일반적인 문제를 살펴보고 해결 방법을 제공합니다.
먼저 컨테이너 상태를 확인해야 합니다. 실행 중인 컨테이너와 실행되지 않는 컨테이너를 포함한 모든 컨테이너의 상태를 보려면 docker ps -a
명령을 사용하세요. 컨테이너 상태가 Exited
인 경우 컨테이너 실행이 중지되었음을 의미합니다. docker ps -a
可以查看所有容器的状态,包括运行中的和未运行的容器。如果容器状态为 Exited
,则说明容器已经停止运行。
$ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 8a9506b91d24 nginx "nginx -g 'daemon of…" 2 hours ago Exited (1) 2 hours ago nginx-container
当容器启动失败时,我们可以通过查看容器日志来获取更多详细信息。使用命令 docker logs CONTAINER_NAME/ID
可以查看容器的日志输出。如果此时容器已经关闭,可以使用参数 -f
持续查看日志。
$ docker logs nginx-container 2021/08/23 08:08:09 [emerg] 1#1: bind() to 0.0.0.0:80 failed (98: Address already in use) ...
以上面的 nginx-container
为例,可以看到错误信息是 bind() to 0.0.0.0:80 failed (98: Address already in use)
,表明端口 80 已经被占用,因此容器无法启动。
前面的错误提示已经提到了端口占用问题,因此我们需要检查容器的端口映射是否正确。使用命令 docker port CONTAINER_NAME/ID
可以查看容器的端口映射情况。
$ docker port nginx-container 80/tcp -> 0.0.0.0:8080
上面的输出表明容器的 80 端口被映射到了宿主机的 8080 端口,因此我们需要检查宿主机的 8080 端口是否被占用。
有时候容器启动失败是由于内部服务无法正常启动。例如,数据库容器连接失败、应用程序自身的配置问题等等。在这种情况下,我们需要进入容器内部,手动运行服务并检查输出信息。
使用命令 docker exec -it CONTAINER_NAME/ID bash
$ docker exec -it nginx-container bash
docker log CONTAINER_NAME/ID
명령을 사용하세요. 이때 컨테이너가 종료된 경우 -f
매개변수를 사용하여 로그를 계속 볼 수 있습니다. $ docker stop nginx-container $ docker rm nginx-container
nginx-container
를 예로 들면, 오류 메시지가 bind() to 0.0.0.0:80 failed (98: Address 이미 사용 중) 는 포트 80이 이미 사용 중이므로 컨테이너를 시작할 수 없음을 나타냅니다.
컨테이너 포트 매핑 확인
이전 오류 메시지에서 포트 점유 문제를 언급했기 때문에 컨테이너의 포트 매핑이 올바른지 확인해야 합니다. 컨테이너의 포트 매핑을 보려면docker port CONTAINER_NAME/ID
명령을 사용하세요.
$ docker build -t my-nginx . $ docker run -d --name nginx-container -p 8080:80 my-nginx
docker exec -it CONTAINER_NAME/ID bash
명령을 사용하여 컨테이너에 들어가세요. 🎜rrreee🎜컨테이너 내부에서 확인이 필요한 서비스를 실행하고 출력정보를 확인해보세요. 🎜🎜🎜이미지 다시 빌드🎜🎜🎜컨테이너를 시작할 수 없고 위의 방법 중 어느 것도 도움이 되지 않으면 컨테이너를 다시 빌드해 볼 수 있습니다. 먼저 원본 컨테이너를 중지하고 삭제해야 합니다. 🎜rrreee🎜그런 다음 이미지를 다시 빌드하고 컨테이너를 실행하세요. 🎜rrreee🎜위 내용은 Docker 컨테이너 시작에 실패하는 몇 가지 일반적인 이유와 해결 방법입니다. 물론 Docker 컨테이너를 사용할 때 주의해야 할 세부 정보와 구성 옵션도 많이 있습니다. 독자들이 컨테이너 개발의 기본 기술을 익힐 수 있기를 바랍니다. 🎜위 내용은 Docker 컨테이너를 시작할 수 없는 문제에 대한 해결 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!