Akashic Records

시스템 부팅시 도커 컨테이너 자동 실행 본문

오래된글/Articles

시스템 부팅시 도커 컨테이너 자동 실행

Andrew's Akashic Records 2018. 5. 3. 16:15
728x90

Docker 컨테이너를 운용중인 시스템이 Reboot 되버리면 컨테이너가 자동으로 올라오지 않아 불편해서 시스템 리붓시 컨테이너를 자동으로 시작되게 init 데몬에 등록하기로 했습니다.


  • 서버는 “JAN”  Ubuntu 17.10

  • Docker는 17.09.1-ce


등록할 컨데이너 목록


  • main_redmine : Redmine

  • main_redmine/postgresql: Redmine 전용 DB

  • main_oracle11g: oracle 11g

  • main_jenkins: Jenkins

  • main_nexus: Nexus2

  • main_portainer: Docker Management Tool

  • main_tomcat: Tomcat 8.0


"/etc/systemd/system"에 각각의 컨테이너이름을 넣은 아래의 형식으로 service파일들을 생성 합니다.


[Unit]

Wants=docker.service

After=docker.service

[Service]

RemainAfterExit=yes

ExecStart=/usr/bin/docker start main_tomcat

ExecStop=/usr/bin/docker stop main_tomcat

[Install]

WantedBy=multi-user.target


저는 아래와 같이 7개의 파일을 만들었습니다.


  • dc_main_jenkins.service

  • dc_main_nexus.service

  • dc_main_oracle11g.service

  • dc_main_portainer.service

  • dc_main_redmine.service

  • dc_main_redmine_db.service

  • dc_main_tomcat.service


“systemctl enable 서비스명” 명령어로 데몬에 등록을 시켜줍니다.


  • systemctl enable dc_main_jenkins

  • systemctl enable dc_main_nexus

  • systemctl enable dc_main_oracle11g

  • systemctl enable dc_main_portainer

  • systemctl enable dc_main_redmine

  • systemctl enable dc_main_redmine_db

  • systemctl enable dc_main_tomcat


끝입니다. 잘 동작하는지 확인하고 싶다면 시스템을 리붓해보면 되겠지만 그건 무리겠지요.


docker stop 명령어로 현재 실행중인 main_tomcat을 종료해봅니다.

그리고


“systemctl start dc_main_tomcat”


sudo docker ps 로 확인해서 “main_tomcat” 이 실행되어 있다면  잘 동작 한다고 보시면 됩니다.

728x90
Comments