도커 엔진이 계속 최신 버전으로 올라가기 때문에 기존에 사용하는 엔진이 구형이 되었을때 성능, 버그, 보안 패치, 새로운 기능등의 이유로 업그레이드가 권장됩니다.
이번글에서는 어떻게 업데이트를 할수 있는지 정리해보겠습니다.
[시나리오]
현재 F 사는 ubunt18.04 운영체제에 docker 19.x 버전을 사용 중이다. 새로운 기능의 호환성을 맞추고 성능 향상을 위해 최신 버전 업데이트를 결정했다.
작업 절차는 다음과 같다.
- 기존에 실행 중인 컨테이너들을 stop 한다.
- 현재 사용 중인 19.X 버전의 docker 엔진을 삭제한다.
- 최신 버전의 docker 엔진을 설치한다.
- 기존 버전에서 운영 중이 였던 컨테이너 기동(start)!
- If, error 발생 시 원인 파악, 문제 해결 -> 중지되었던 컨테이너 start
- 필요에 따라 Ubuntu Linux도 18.04 -> 22.04 로 upgrade 수행 (실습에서는 제외)
sudo apt update sudo apt -y remove docker-ce curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - # apt repository source에 docker repo 추가. (keyring 포함) echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt update sudo apt -y install docker-ce docker-ce-cli containerd.io
정상적으로 엔진이 올라갔다. 이제 멈춰진 container들을 다시 시작하면 끝이다.
하지만 간혹 이전 container가 시작 시 오류가 날 수 있는데 해결 방법은 다음과 같다.
jeff@hostos3:~$ docker start nginx-web docker: Error response from daemon: groups: group mountpoint does not exist: unknown. jeff@hostos3:~$ docker start httpd-web docker: Error response from daemon: groups: group mountpoint does not exist: unknown. jeff@hostos3:~$ sudo mkdir /sys/fs/cgroup/systemd jeff@hostos3:~$ sudo mount -t cgroup -o none,name=systemd cgroup /sys/fs/cgroup/systemd
위처럼 오류가 발생 시
sudo mkdir /sys/fs/cgroup/systemd
sudo mount -t cgroup -o none,name=systemd cgroup /sys/fs/cgroup/systemd
입력해주면 해결 된다.
이번 장은 시나리오 상황을 준비하지 못해서 강의 내용을 정리만 하고 넘어가겠습니다.