태그 보관물: ubuntu

ubuntu

시스템 부팅시 도커 컨테이너를 자동 시작하려면 어떻게합니까? 부팅시 도커 컨테이너를 자동으로 시작하는 좋은

시스템 부팅시 도커 컨테이너를 자동으로 시작하는 좋은 방법은 무엇입니까?

우분투 14.04 에서이 작업을 수행하는 바람직한 방법이 있습니까?

supervisord과거에는 웹 앱을 자동 시작하는 데 사용 했습니다. 그러나 Docker에게는 옳지 않은 느낌입니다.



답변

분명히 Docker 컨테이너 를 Docker 1.2에서 자동 시작하는 현재 방법 은 재시작 정책 을 사용 하는 것 입니다. 이것은 Docker가 컨테이너를 시작할 때 컨테이너 시작과 컨테이너가 다시 시작될 때 컨테이너를 다시 시작하는 방법을 제어합니다. 지금까지 ‘always’옵션을 사용했으며 시스템 부팅시 Docker가 컨테이너를 자동 시작하는지 확인할 수 있습니다.

sudo docker run --restart=always -d myimage

발췌 문서

재시작 정책 Docker run에서 –restart 플래그를 사용하면 종료시 컨테이너를 재시작해야하는 방식에 대한 재시작 정책을 지정할 수 있습니다.

no-컨테이너가 종료 될 때 컨테이너를 다시 시작하지 않습니다.

실패시-종료 상태가 아닌 0으로 컨테이너를 종료 한 경우에만 컨테이너를 다시 시작하십시오.

always-항상 종료 상태에 관계없이 컨테이너를 다시 시작하십시오.

또한 실패시 정책을 사용할 때 Docker가 컨테이너를 다시 시작하려고 시도하는 최대 횟수를 지정할 수도 있습니다. 기본적으로 Docker는 컨테이너를 다시 시작하려고 영원히 시도합니다.

$ sudo docker run --restart=always redis

컨테이너가 종료되면 Docker가 다시 시작하도록 항상 재시작 정책으로 redis 컨테이너를 실행합니다.

$ sudo docker run --restart=on-failure:10 redis

그러면 실패시 재시작 정책과 최대 재시작 횟수가 10 인 redis 컨테이너가 실행됩니다. redis 컨테이너가 0이 아닌 종료 상태로 10 번 이상 종료하면 Docker는 컨테이너 재시작을 중단합니다. 최대 재시작 제한을 제공하는 것은 장애 조치 정책에만 유효합니다.


답변

Docker에는 upstart 및 systemd로 수행하는 방법을 설명하는 이 페이지 가 있습니다. Docker에게는 옳지 않은 것처럼 보입니다. 그들의 해결책은 run docker start입니다. 이미 컨테이너를 이미 만들었다 고 가정합니다. 당신이 중 하나를 할 거라고 생각 docker run --rm은 기본적으로 당신은 다른 아무것도하지 않을 경우 신출내기 스크립트 (이미지에서 새로운 프로세스 및 컨테이너처럼 치료) 또는 단지 고정 표시기 데몬이 부팅 컨테이너 자체를 다시 시작하자 (로 ). Upstart는 프로세스를 쉽게 시작 / 중지 할 수 있다는 장점이 있지만, docker의 시작 / 중지로도 얻을 수 있습니다!

upstart 스크립트가 작동하기 전에 사용자가 강제로 모든 올바른 포트 / 볼륨 바인딩을 가진 컨테이너를 수동으로 작성하는 것이 이상하다고 생각합니다.


답변

그러나 Docker에게는 옳지 않은 느낌입니다.

왜 안돼?

나는 이것을 위해 감독자를 사용하여 큰 성공을 거두었습니다.

알고있는 것을 사용하고, 작동하는 것을 사용하고, 쉽게 유지 관리하고 이해할 수있는 것을 사용하십시오.


답변