Tech Note

도커를 활용한 서비스 배포하기 (오프라인 설치 .tgz) #9

Dominic-Kim 2022. 7. 18. 10:03
728x90
개요
오프라인 환경에서 Docker 설치를 위해 rpm 설치 방법 및 의존성을 파악하고 모든 세팅을 마쳤다.
고객사에 방문하여 설치만 하면 된다. 명령어가 정리된 작업계획서를 전달하였고 방문 전날 퇴근전😲 Docker RPM 설치를 진행하면 안된다는 청천벽력같은 소리를 들었다. RPM으로 설치하게 되면 특정 폴더가 꼬일 수 있다는 문제제기로 인해서 였고, 그에 대한 충분한 반박을 하지 못하였기 때문에 어쩔 수 없이 따르게 되었다... 하늘이 무너져도 솟아날 구멍은 있다고 했나.
작업환경
운영체제 : Centos 7

 

다행히도 Docker는 binary 파일을 제공하고 있었다. 아래 링크에서 원하는 버전을 받을 수 있다.

https://download.docker.com/linux/static/stable/x86_64/

 

Index of linux/static/stable/x86_64/

 

download.docker.com

docker-20.10.9.tgz 파일을 받는다

 

나름 시행착오가 있었지만, 정리가 된 후의 명령어는 간단하기 그지 없다.

[설치 및 기동방법]
1. https://download.docker.com/linux/static/stable/x86_64/ 링크를 통해 원하는 도커 버전을 받는다.
2. 해당 폴더를 서버에 업로드 한다.
3. tar -xvf docker-20.10.9.tgz
4. mv * /usr/bin/
5. dockerd &

수동 설치이기 때문에, 나머지 부분들은 직접 설정해주어야한다. 

root 권한을 사용 할 수도 있지만, 다른 유저에서 도커를 사용 할 수 있도록 권한을 설정해준다.

[도커 유저 권한설정]
1. usermod -aG docker vtmusr
2. cd /var/run
3. ll -al docker.* 
4. chown root:docker docker.*

 

위 방식으로 설치하게되면 systemctl 명령어를 통해 사용하는 법은 아직 찾아볼 수 없었다.

기본 기동 명령어는 dockerd & 이다. 서버가 재시작되면 도커 서비스를 다시 올려줘야 하는데 root 권한이 아닌 유저의 경우 해당 작업이 불가능하여, 문제가 발생할 여지가 있다. 이를 해결하기 위해 쉘 스크립트를 하나 작성한 뒤 서버 재시작 시 자동으로 dockerd & 명령어를 입력하게 하는 방법을 사용했다.

1. chmod +x /etc/rc.d/rc.local
2. vi /etc/rc.d/rc.local
[입력]
--------------------------------------------------------------
/etc/rc.d/docker-start.sh
--------------------------------------------------------------
3. chmod +x /etc/rc.d/docker-start.sh
4. systemctl enable rc-local.service
5. vi /usr/lib/systemd/system/rc-local.service
[맨 하단에 입력]
--------------------------------------------------------------
[Install]
WantedBy=multi-user.target
--------------------------------------------------------------

 

 

※ 해당 방법은 절대 검증된 방법이 아니다. 따라해서 문제가 발생하는 경우 책임지지 않는다. 충분한 테스트를 통해 적용해야 한다.

 

참조 링크

https://sd23w.tistory.com/469

 

CentOS 7 부팅시 자동시작 스크립트 적용

리눅스 Centos 7 부팅시 명령어 자동실행 방법 자동으로 실행되게 하려면 '/etc/rc.d/rc.local' 파일을 이용하면 됩니다. rc.local 실행권한 허용 chmod +x /etc/rc.d/rc.local 실행스크립트 추가 vi /etc/rc.d/rc..

sd23w.tistory.com