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” 이 실행되어 있다면 잘 동작 한다고 보시면 됩니다.
'오래된글 > Articles' 카테고리의 다른 글
How to embed Tomcat and Java web apps in an executable JAR (0) | 2018.05.29 |
---|---|
First WebSocket (0) | 2018.05.03 |
Android Service에서 AlertDialog 띄우기 (0) | 2018.05.03 |
Android 촬영 사진의 회전 각도 구하기 (0) | 2018.05.03 |
모바일 보안 취약점 및 대책 (0) | 2018.05.03 |