서버 운영 관리 [ Tip ]

Docker 컨테이너 자동 실행 매뉴얼

1. 명령어로 docker 자동 실행 등록

 

docker 컨테이너의 경우 ctrl+c로 컨테이너를 종료하거나 reboot 를 하게 되면

stop 상태가 됩니다. 명령어를 통해 컨테이너를 자동으로 재시작 할 수 있습니다.

 

docker run -it --restart unless-stopped --net=bridge --name docker-nginx nginx:latest /bin/bash

 

--restart=“ ” 컨테이너 내부의 프로세스 종료시 재시작 정책을 설정할 수 있습니다.

 

* no → 프로세스가 종료되더라도 컨테이너를 재시작하시 않습니다.

 

* on-failure → 프로레스 exit code 0 이 아닐 때 재시작합니다. 지정하지 않으면 계속해서 컨테이너를 재시작 합니다.

 

*always → 프로세스의 exit code 와는 관계없이 재시작 합니다

 

* unless-stopped부팅시 자동으로 컨테이너를 재시작 합니다.

 

 

2. Systemd 를 이용한 자동 실행 등록

 

 Centos Ubuntu 15.04 이상에서는 systemd 를 이용한 자동 실행 등록이 가능합니다.

 

docker run -it --net=host --name=docker-centos centos:latest /bin/bash

(Docker container 를 생성합니다.)

 

 

서비스를 등록하기 위해 생성한 컨테이너의 이름을 입력 후 저장합니다.

 

Vi /etc/systemd/system/docker-centos.service

[Unit]
Description=docker-centos container
Requires=docker.service
After=docker.service

[Service]
Restart=always
ExecStart=/usr/bin/docker start -a docker-centos
ExecStop=/usr/bin/docker stop -t 2 docker-centos

[Install]
WantedBy=multi-user.target

(docker container의 이름을 지정하여 컨테이너 별로 서비스 재시작할 수 있습니다. 

 

docker 컨테이너를 부팅 시에도 실행할 수 있도록 systemctl 에 심볼릭 링크를 생성하여 설정합니다.

# systemctl enable docker-centos.service 

 

 

서버를 reboot 한 후에도  docker 컨테이너들이 정상적으로 작동 중인 상태 확인할 수 있습니다.