도커를 설치해놓은지 너무 오래돼서 버전 업그레이드를 한다.
이전 버전을 깔끔하게 지우고, 신규 버전으로 업그레이드 해보자.
이전에 설치해놓은 도커가 없다. 신규 설치다! 하는 사람들은 3번부터 시작~
1. 일단 도커 종료
sudo service docker stop
sudo rm -rf /var/run/docker.sock
2. 기존 데이터 삭제
for target in docker-compose docker.io docker-doc docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $ target ; done
근데 잘 삭제가 안됐다.
아래 명령어로 다시해보자.
remove -> autoremove로 바꿈
for target in docker-compose docker.io docker-doc docker-compose-v2 podman-docker containerd runc; do sudo apt-get autoremove $ target ; done
3. 패키지 다운로드
패키지 다운로드 : https://download.docker.com/linux/ubuntu/dists/xenial/pool/stable/amd64/
sudo dpkg -i ./containerd.io_1.7.19-1_amd64.deb
sudo dpkg -i ./docker-ce-cli_27.1.1-1~ubuntu.20.04~focal_amd64.deb
sudo dpkg -i ./docker-ce_27.1.1-1~ubuntu.20.04~focal_amd64.deb
sudo dpkg -i ./docker-buildx-plugin_0.16.1-1~ubuntu.20.04~focal_amd64.deb
sudo dpkg -i ./docker-compose-plugin_2.6.0~ubuntu-focal_amd64.deb
4. 데이터 저장 경로 지정 (Optional)
도커 관련 데이터를 저장할 경로 지정. default는 /var/lib/docker (귀찮다면 생략해도됨)
sudo vi /etc/docker/daemon.json
{
"data-root": "/test/docker"
}
기존의 docker 관련 데이터를 새로운 경로로 옮겨주자
sudo rsync -aP /var/lib/docker/ /test/docker
혹시 모르니 기존 데이터도 백업해두자.
sudo mv /var/lib/docker /var/lib/docker.backup
5. 도커 실행
sudo service docker start
//실행 시 오류가 발생한다면 아래 명령어로 확인
sudo journalctl -u docker -n 70
간단한 테스트를 해보자.
nginx 이미지를 다운받아 컨테이너를 실행시켜 보자.
docker pull nginx
docker images
docker run --name my-nginx -d -p 8080:80 nginx
docker ps //컨테이너 목록이 나오면 OK
docker logs my-nginx //로그도 조회해보자.
docker rm my-nginx //컨테이너 삭제
docker rmi nginx //이미지 삭제
6. 도커 버전 확인
docker --version
7. 스웜 구성
3개의 노드에 도커 스웜을 구성해보자.
스웜을 서비스로 관리한다.
//이건 한 노드에서만 실행
docker swarm init
docker swarm join-token manager
//나머지 노드 두개에서 아래 작업 실행
# docker swarm join --token TOKEN1234TOKEN 첫실행노드IP:2377
//똑같이 nginx를 띄워보자~
docker service create --name my-nginx -p 8080:80 nginx
//확인. 일단 한 노드에서만 떴을 거임.
docker service ls
//서비스 상세 정보 확인.
docker service inspect my-nginx
//로그 확인
docker service logs my-nginx
//이제 3개의 서버에 모두 띄워보자.
docker service update --replicas 3 my-nginx
//모든 노드에 들어가서 확인해보자. 3개 노드에 3 replicas로 실행했으니 모두 확인될 것이다.
docker service ps my-nginx
//서비스 삭제
docker service rm my-nginx
'IT 잡동사니' 카테고리의 다른 글
Zeppelin multi instance (H/A) 구성 (0) | 2024.11.05 |
---|---|
MongoDB - 명령어 모음집 (0) | 2024.07.02 |
Ubuntu OpenLDAP 설치 (0) | 2024.07.01 |
Zeppelin 설치(Windows) - UI 안나오는 이슈 해결, 원격 접속 허용 (0) | 2024.07.01 |
Zeppelin spark interpreter 연동 (0) | 2024.07.01 |