Docker 이미지가 일치하지 않습니다.

Docker 이미지가 일치하지 않습니다.

Docker 이미지는 변경 불가능해야 하지만 그 중 하나를 다른 시스템으로 가져오면 다르게 동작합니다.

오류를 재현하기 위해 debootstrap으로 빌드된 debian-wheezy 이미지부터 시작하겠습니다.

Dockerfile을 사용하여 이미지를 빌드합니다.

FROM debian-wheezy
RUN apt-get install -y fail2ban
RUN rm /var/run/fail2ban/fail2ban.sock

마지막 명령은 다음 시작 시 failure2ban이 충돌하는 것을 방지합니다. 어떤 이유로 Dockerfile에서 서비스를 수동으로 중지하더라도 소켓 파일은 failure2ban을 설치한 후에도 그대로 유지됩니다. 파일이 여전히 존재하면 Fail2ban을 다시 시작할 수 없습니다.

이미지를 시작하고 Fail2ban을 시작하면 성공합니다. 내용을 확인할 수 있어요/var/run/fail2ban저장소:

$ docker build -t test/fail2ban .
$ docker run test/fail2ban ls /var/run/fail2ban
fail2ban.pid

그러나 이미지를 내보내고 다른 컴퓨터로 가져오는 경우:

$ docker save test/fail2ban > /tmp/fail2ban.tar
$ scp /tmp/fail2ban.tar user@machine:/tmp
$ ssh user@machine "cat /tmp/fail2ban.tar | docker load"
$ ssh user@machine docker run test/fail2ban ls /var/run/fail2ban
fail2ban.pid
fail2ban.sock

이번에는 소켓 파일이 있어서 서비스를 시작할 수 없습니다.

누군가 이 동작과 문제 해결 방법을 설명할 수 있습니까?

자세한 내용은 다음과 같습니다.

$ uname -a
Linux debian 3.2.0-4-amd64 #1 SMP Debian 3.2.65-1+deb7u2 x86_64 GNU/Linux
$ docker --version
Docker version 1.6.0, build 4749651
$ ssh user@machine uname -a
Linux debian 3.2.0-4-amd64 #1 SMP Debian 3.2.65-1 x86_64 GNU/Linux
$ ssh user@machine docker --version
Docker version 1.6.0, build 4749651

관련 정보