IT 잡동사니

[Docker] Ubuntu 도커 설치 / 도커 삭제 / 버전 업그레이드 / 도커 명령어까지 쉽다쉬워

케키키케 2024. 11. 5. 20:53

도커를 설치해놓은지 너무 오래돼서 버전 업그레이드를 한다.

이전 버전을 깔끔하게 지우고, 신규 버전으로 업그레이드 해보자.

 

이전에 설치해놓은 도커가 없다. 신규 설치다! 하는 사람들은 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