떼지기 위해 컨테이너를 전개하려고합니다. 실행 명령은 :도커 떼에 여러 개의 복제본
docker service create --name backend --replicas 3 --publish published=8080,target=80 my-repo/subserver:latest
이 3 복제본을 시작하지만, 그 중 하나는 항상 오류가 있습니다 :
docker service ps --no-trunc backend
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS
0759ox8aganle2banj4s1uc31 backend.1 my-repo/subserver:latest Debian-70-wheezy-64-minimal Running Running 2 minutes ago
zjm9tf5ca1t58iuyjsyjqpjnq backend.2 my-repo/subserver:latest Debian-70-wheezy-64-minimal Running Running 2 minutes ago
u9ebicuyh0it6kvpaj9n7id2b backend.3 my-repo/subserver:latest Debian-70-wheezy-64-minimal Ready Ready less than a second ago
4kgwlm4rddj7zefr9tc1xst75 \_ backend.3 my-repo/subserver:latest Debian-70-wheezy-64-minimal Shutdown Failed 2 seconds ago "starting container failed: Address already in use"
dqvsyy5cjd95iid845ylrpdzi \_ backend.3 my-repo/subserver:latest Debian-70-wheezy-64-minimal Shutdown Failed 8 seconds ago "starting container failed: Address already in use"
ki0y94msyswqirm03qr7ldzl6 \_ backend.3 my-repo/subserver:latest Debian-70-wheezy-64-minimal Shutdown Failed 13 seconds ago "starting container failed: Address already in use"
emydpjqzzo5ce2ngid9ap9pb7 \_ backend.3 my-repo/subserver:latest Debian-70-wheezy-64-minimal Shutdown Failed 19 seconds ago "starting container failed: Address already in use"
Tryed 다른 포트를. 컨테이너에 PHP-FPM 및 nginx가 포함되어 있습니다. bash 스크립트로 시작하는 서비스 :
#!/bin/bash
service nginx start
service php7.0-fpm start
while /bin/true; do
ps aux |grep nginx |grep -q -v grep
PROCESS_1_STATUS=$?
ps aux |grep php |grep -q -v grep
PROCESS_2_STATUS=$?
# If the greps above find anything, they will exit with 0 status
# If they are not both 0, then something is wrong
if [ $PROCESS_1_STATUS -ne 0 -o $PROCESS_2_STATUS -ne 0 ]; then
echo "One of the processes has already exited."
exit -1
fi
sleep 60
done
Docker 파일은 80 포트만을 제공합니다.
네트워크 인터페이스/관련 노드의 주소? ('$ ip address'). 컨테이너에 할당 된 주소와 비교하십시오 ('docker container inspect ...'). – tne