서버 운영 관리

홍유희 에반젤리스트

Docker 컨테이너 자동시작


1. Docker 자동 실행


Docker는 컨테이너를 종료하거나 재시작할 때 컨테이너들을 자동으로 시작할지의 여부를 제어하는 재시작 정책을 제공합니다.
systemctl enable docker.service 명령어로 단순히 docker.service 자체를 자동으로 실행되도록 설정할 수 있습니다. 원하는 컨테이너를 따로 service파일로 생성하여 자동으로 실행할 수도 있습니다.


(1) 작업 전 준비

자동실행 테스트를 진행하기 위해 실행되고 있는 모든 컨테이너를 중지시킵니다.

# docker ps → DB 컨테이너가 실행되고 있는 상태
# docker stop DB → 실행되고 있는 컨테이너 중지
# docker ps → 현재 실행되고 있는 컨테이너 없음

 

(2) service 파일생성
systemd를 이용하여 서비스 파일을 생성한 후 해당 서비스를 부팅시 실행될 수 있도록 활성화합니다.

# cd /etc/systemd/system


# vi [설정한 서비스].service
[Unit]
Wants=docker.service
After=docker.service
 
[Service]
RemainAfterExit=yes
ExecStart=/usr/bin/docker start [실행할 docker container 이름]
ExecStop=/usr/bin/docker stop [실행할 docker container 이름]
 
[Install]
WantedBy=multi-user.target


# systemctl start [설정한 서비스] → 서비스를 시작

# systemctl enable [설정한 서비스] → 부팅시 실행할 수 있도록 해당 서비스 활성화


/etc/systemd/system/multi-user.target.wants/docker_db.service에서/ /etc/systemd/system/docker_db.service로 심볼릭 링크가 생성되었습니다.


# systemctl list-unit-files |grep docker → docker_db.service가 자동실행 되도록 설정

 

(3) 자동실행 테스트  
리부팅 후 도커 서버에 접속하였을 때 자동으로 DB 서비스가 올라와있는것을 확인할 수 있습니다.

질문 및 제안하기

댓글 0

댓글 내역이 없습니다.

댓글 더 보기 첫 댓글 맨 위