- OS: CentOS 7
- Docker: 1.13 -> 20.10
CentOS7에 Docker를 yum을 통하여 1.13 버전을 설치하여 사용하고 있었다.
$ docker version
Client:
Version: 1.13.1
API version: 1.26
Package version: docker-1.13.1-102.git7f2769b.el7.centos.x86_64
Go version: go1.10.3
Git commit: 7f2769b/1.13.1
Built: Mon Aug 5 15:09:42 2019
OS/Arch: linux/amd64
Server:
Version: 1.13.1
API version: 1.26 (minimum version 1.12)
Package version: docker-1.13.1-102.git7f2769b.el7.centos.x86_64
Go version: go1.10.3
Git commit: 7f2769b/1.13.1
Built: Mon Aug 5 15:09:42 2019
OS/Arch: linux/amd64
Experimental: false
Tomcat 최신 이미지가 필요하여 실행하였는데 컨테이너에서 ls
명령어를 실행하였을 때 퍼미션과 소유권이 문자가 ?로 표시되었다.
(대략 이런 모습)
$ ls
???? ? ?? ?? catalina.log
Docker 기반에서 WAS가 운영되고 있기 때문에 웬만해서는 업그레이드를 하고 싶지 않았다. 계획처럼 업그레이드가 되지 않을 것을 알기 때문에 하지만 이후에도 관련 이슈는 계속 발생할 것이며, 보안에도 문제가 될 것이므로 진행하기로 결정했다.
1. 도커 서비스 중지 및 삭제
# 도커 서비스 중지
$ sudo systemctl docker
# 도커 이전 버전 삭제
$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine \
podman \
runc
2. 도커 설치를 위한 저장소 등록
$ sudo yum install -y yum-utils
$ sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/rhel/docker-ce.repo
3. 도커 최신 버전 설치
$ sudo yum install docker-ce docker-ce-cli containerd.io
ERROR 404 오류
HTTPS Error 404 - Not Found - https://download.docker.com/linux/rhel/7Server/x86_64/stable/repodata/repomd.xml
저장소를 설정 파일의 등록된 URL 주소가 변경되었기 때문에 yum을 통하여 설치를 진행하면 404 오류가 발생한다. 저장소 정보에서 URL 변경이 필요하다.
- 저장소 설정 파일
$ sudo vi /etc/yum.repo.d/docker-ce.repo
- 저장소 파일 내용
[docker-ce-stable]
name=Docker CE Stable - $basearch
baseurl=https://download.docker.com/linux/rhel/$releasever/$basearch/stable
enabled=1
gpgcheck=1
gpgkey=https://download.docker.com/linux/rhel/gpg
URL 주소 /rhel/$releasever/ -> /centos/7/ 변경 필요
- vi에서 치환
:%s /rhel\/$releasever/centos\/7/g
명령어를 이용하여 rhel/$releasever -> centos/7
로 변경하자
- sed 이용
$ sed -i 's/rhel\/$releasever/centos\/7/g' /etc/yum.repos.d/docker-ce.repo
ERROR 의존성 라이브러리 필요(slirp4netns, fuse-overlayfs)
slirp4netns >= 0.4 의존성 라이브러리 필요
$ sudo vi /etc/yum.repos.d/docker-ce.repo
- 추가 저장소 정보
[centos-extras]
name=Centos extras - $basearch
baseurl=http://mirror.centos.org/centos/7/extras/x86_64
enabled=1
gpgcheck=1
gpgkey=http://centos.org/keys/RPM-GPG-KEY-CentOS-7
4. 도커 실행
- 도커 버전
$ docker version
docker version
Client: Docker Engine - Community
Version: 20.10.14
API version: 1.41
Go version: go1.16.15
Git commit: a224086
Built: Thu Mar 24 01:49:57 2022
OS/Arch: linux/amd64
Context: default
Experimental: true
Server: Docker Engine - Community
Engine:
Version: 20.10.14
API version: 1.41 (minimum version 1.12)
Go version: go1.16.15
Git commit: 87a90dc
Built: Thu Mar 24 01:48:24 2022
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.5.11
GitCommit: 3df54a852345ae127d1fa3092b95168e4a88e2f8
runc:
Version: 1.0.3
GitCommit: v1.0.3-0-gf46b6ba
docker-init:
Version: 0.19.0
GitCommit: de40ad0
5. 도커 이미지 파일 삭제 오류
정상적으로 도커는 실행되었지만, 이미지 파일이 삭제되지 않았다.
또한 동일 버전의 도커 이미지가 계속 받아지는 현상도 발생하였다.
도커 이미지 손상으로 삭제 후 재설정 필요
삭제 전 도커 생성 스크립트 사전 백업 및 확인 필요, 컨테이너가 다 삭제됨
$ docker rmi tomcat:8.5.78
Error: No such image: tomcat:8.5.78
- 도커 컨테이너 상태 파일 삭제
$ sudo systemctl stop docker
$ sudo rm -rf /var/lib/docker
$ sudo systemctl start docker
참고
- https://docs.docker.com/engine/install/rhel/
- https://stackoverflow.com/questions/60970697/docker-install-failing-in-linux-with-error-errno-14-https-error-404-not-foun
- https://access.redhat.com/discussions/5336741
- https://forums.docker.com/t/docker-ce-stable-x86-64-repo-not-available-https-error-404-not-found-https-download-docker-com-linux-centos-7server-x86-64-stable-repodata-repomd-xml/98965
- https://stackoverflow.com/questions/46381888/docker-images-shows-image-docker-rmi-says-no-such-image-or-reference-doe
'FullStack > 30. CI.CD' 카테고리의 다른 글
[GIT] fatal: git fetch-pack: expected shallow list (0) | 2022.11.25 |
---|---|
Docker 시작 로그 확인 (0) | 2022.04.06 |
gitlab-ci GIT_STRATEGY (0) | 2022.03.10 |
[Gitlab] Gitlab-runner 삭제 및 재설치 (0) | 2021.05.07 |
[CI/CD] Gitlab Runner 설치 및 실행하기 (0) | 2021.02.06 |