우아한 테크코스/이것저것
Ubuntu - 재부팅시 Docker를 이용한 Jenkins 자동으로 ON
jamie.
2020. 7. 31. 09:34
반응형
Docker 컨테이너 확인 후 제거
$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4bb24e16a109 jenkinsci/blueocean "/sbin/tini -- /usr/…" 6 seconds ago Up 5 seconds 0.0.0.0:50000->50000/tcp, 0.0.0.0:8080->8080/tcp jenkins-blueocean
b9754d7f715e docker:dind "dockerd-entrypoint.…" 2 minutes ago Up 2 minutes 2375/tcp, 0.0.0.0:2376->2376/tcp jenkins-docker
$ sudo docker stop jenkins-blueocean
$ sudo docker stop jenkins-docker
$ sudo docker rm jenkins-blueocean
$ sudo docker rm jenkins-docker
// 안 될경우 강제 삭제
$ sudo docker rm -f jenkins-blueocean
$ sudo docker rm -f jenkins-docker
Docker 컨테이너 다시 띄우기
다시 띄우는 이유 : --rm 옵션을 사용했었는데, 그렇게 되면 재부팅시 컨테이너 정보를 상실하여 Systemctl로 등록을 해도 정상 동작을 하지 않기 때문에 해당 옵션 제외하여 띄움
$ sudo docker container run \
--name jenkins-docker \
--detach \
--privileged \
--network jenkins \
--network-alias docker \
--env DOCKER_TLS_CERTDIR=/certs \
--volume jenkins-docker-certs:/certs/client \
--volume jenkins-data:/var/jenkins_home \
--publish 2376:2376 \
--restart=always \
docker:dind
$ sudo docker container run \
--name jenkins-blueocean \
--detach \
--network jenkins \
--env DOCKER_HOST=tcp://docker:2376 \
--env DOCKER_CERT_PATH=/certs/client \
--env DOCKER_TLS_VERIFY=1 \
--publish 8080:8080 \
--publish 50000:50000 \
--volume jenkins-data:/var/jenkins_home \
--volume jenkins-docker-certs:/certs/client:ro \
jenkinsci/blueocean
jenkins-blueocean.service 생성
$ sudo vi /etc/systemd/system/jenkins-blueocean.service
[Unit]
Description=docker jenkins-blueocean Service
After=docker.service
Requires=docker.service
[Service]
Restart=always
ExecStart=/usr/bin/docker start -a jenkins-blueocean
ExecStop=/usr/bin/docker stop -t 2 jenkins-blueocean
[Install]
WantedBy=multi-user.target
jenkins-docker.service 생성
$ sudo vi /etc/systemd/system/jenkins-docker.service
[Unit]
Description=docker jenkins-docker Service
After=docker.service
Requires=docker.service
[Service]
Restart=always
ExecStart=/usr/bin/docker start -a jenkins-docker
ExecStop=/usr/bin/docker stop -t 2 jenkins-docker
[Install]
WantedBy=multi-user.target
jenkins 컨테이너들 데몬 등록
데몬 : 쉽게 이해하자면 서버 시작시 실행되는 프로그램
$ sudo systemctl enable jenkins-blueocean.service
Created symlink /etc/systemd/system/multi-user.target.wants/jenkins-blueocean.service → /etc/systemd/system/jenkins-blueocean.service.
$ sudo systemctl enable jenkins-docker.service
Created symlink /etc/systemd/system/multi-user.target.wants/jenkins-docker.service → /etc/systemd/system/jenkins-docker.service.
서버 재부팅 - 확인 완료
$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bc433d480fa7 jenkinsci/blueocean "/sbin/tini -- /usr/…" 18 minutes ago Up 4 seconds 0.0.0.0:50000->50000/tcp, 0.0.0.0:8888->8080/tcp jenkins-blueocean
9fee1c2f7b77 docker:dind "dockerd-entrypoint.…" 18 minutes ago Up 5 seconds 2375/tcp, 0.0.0.0:2376->2376/tcp jenkins-docker
반응형