728x90
반응형

이번에는 centos 7 리눅스 서버에서 도커를 설치해보고 설치 내용을 정리해두려고 한다.

나는 저장소를 통해 도커 메뉴얼에 따라 도커를 설치하려고 한다.

여러 가지 방법 중 하나인 도커를 자동으로 설치해주는 스크립트를 통해 쉽게 설치할 수 있다.

$ curl -fsSL https://get.docker.com | sudo sh

Docker는 get.docker.com 및 test.docker.com 에서 빠르고 비대화식으로 설치하기위한 편리한 스크립트를 제공해준다.
하지만 이런 스크립트를 사용하는 것은 프로덕션 환경에는 권장되지 않기 때문에
설치하기 전 설치 환경을 확인해야한다.
도커에서는 스크립트를 통해 설치하기 전 주의 사항을 말해주고 있다.

 

 

기본적으로 root 권한으로 실행되기 때문에
root 가 아닌 사용자가 사용하려면 해당 사용자를 docker 그룹에 추가해야 한다.

# sudo usermod -aG docker $USER # 현재 접속중인 사용자에게 권한주기
# sudo usermod -aG docker your-user # your-user 사용자에게 권한주기

그 외에도 rpm 패키지를 통해 설치할 수 있다.
도커를 설치하는 데 다양한 방법이 있기 때문에 편한 방법으로 도커를 설치하면 된다.


docker 설치하기 전 준비

centos7 에서 도커를 설치하기 전에 이전 버전의 도커가 설치되어 있었다면 지워줘야 한다.
아래의 명령어를 통해서 이전 버전의 도커를 지워준다.

$ sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

 

docker 설치하기

dokcer 를 설치하는 방법에는 여러 방법이 있지만 docker repository 를 통해 docker engine 을 설치하려고 한다.

docker engine 을 설치하기 전에 docker repository 를 설정해주어야 한다.
설정하는 방법은 다음과 같다.

// yum-utils 설치
# yum install -y yum-utils

// yum-config-manager 를 통해서 docker 저장소 설정
# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

실행 결과
yum-utils 의 경우 이미 설치가 되어있어 도커 저장소만 설정해주었다.

# yum install -y yum-utils
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirror.kakao.com
 * epel: ftp.jaist.ac.jp
 * extras: mirror.kakao.com
 * updates: mirror.kakao.com
Package yum-utils-1.1.31-54.el7_8.noarch already installed and latest version
Nothing to do

# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
Loaded plugins: fastestmirror, langpacks
adding repo from: https://download.docker.com/linux/centos/docker-ce.repo
grabbing file https://download.docker.com/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo
repo saved to /etc/yum.repos.d/docker-ce.repo

 

docker engine 설치

최신 버전의 도커 엔진을 설치하려면 아래의 명령어를 실행시켜준다.

# yum install docker-ce docker-ce-cli containerd.io

설치하는 도중에 GPG 키를 수락하라는 메시지가 표시되면
아래의 지문이 일치하는지 확인하고 일치하는 경우 수락한다.

060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35

설치를 하게 되면 아래와 같은 내용을 확인할 수 있다.

Retrieving key from https://download.docker.com/linux/centos/gpg
Importing GPG key 0x621E9F35:
 Userid     : "Docker Release (CE rpm) <docker@docker.com>"
 Fingerprint: 060a 61c5 1b55 8a7f 742b 77aa c52f eb6b 621e 9f35
 From       : https://download.docker.com/linux/centos/gpg
Is this ok [y/N]: y

그리고 Complete! 메시지와 함께 설치가 완료된다.

[설치 로그 첨부]

[root@dev-server lib]# yum install docker-ce docker-ce-cli containerd.io
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirror.kakao.com
 * epel: ftp.jaist.ac.jp
 * extras: mirror.kakao.com
 * updates: mirror.kakao.com
Resolving Dependencies
--> Running transaction check
---> Package containerd.io.x86_64 0:1.4.3-3.1.el7 will be installed
--> Processing Dependency: container-selinux >= 2:2.74 for package: containerd.io-1.4.3-3.1.el7.x86_64
---> Package docker-ce.x86_64 3:20.10.1-3.el7 will be installed
--> Processing Dependency: docker-ce-rootless-extras for package: 3:docker-ce-20.10.1-3.el7.x86_64
---> Package docker-ce-cli.x86_64 1:20.10.1-3.el7 will be installed
--> Running transaction check
---> Package container-selinux.noarch 2:2.119.2-1.911c772.el7_8 will be installed
---> Package docker-ce-rootless-extras.x86_64 0:20.10.1-3.el7 will be installed
--> Processing Dependency: fuse-overlayfs >= 0.7 for package: docker-ce-rootless-extras-20.10.1-3.el7.x86_64
--> Processing Dependency: slirp4netns >= 0.4 for package: docker-ce-rootless-extras-20.10.1-3.el7.x86_64
--> Running transaction check
---> Package fuse-overlayfs.x86_64 0:0.7.2-6.el7_8 will be installed
--> Processing Dependency: libfuse3.so.3(FUSE_3.2)(64bit) for package: fuse-overlayfs-0.7.2-6.el7_8.x86_64
--> Processing Dependency: libfuse3.so.3(FUSE_3.0)(64bit) for package: fuse-overlayfs-0.7.2-6.el7_8.x86_64
--> Processing Dependency: libfuse3.so.3()(64bit) for package: fuse-overlayfs-0.7.2-6.el7_8.x86_64
---> Package slirp4netns.x86_64 0:0.4.3-4.el7_8 will be installed
--> Running transaction check
---> Package fuse3-libs.x86_64 0:3.6.1-4.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

=====================================================================================================================
 Package                           Arch           Version                             Repository                Size
=====================================================================================================================
Installing:
 containerd.io                     x86_64         1.4.3-3.1.el7                       docker-ce-stable          33 M
 docker-ce                         x86_64         3:20.10.1-3.el7                     docker-ce-stable          27 M
 docker-ce-cli                     x86_64         1:20.10.1-3.el7                     docker-ce-stable          33 M
Installing for dependencies:
 container-selinux                 noarch         2:2.119.2-1.911c772.el7_8           extras                    40 k
 docker-ce-rootless-extras         x86_64         20.10.1-3.el7                       docker-ce-stable         9.0 M
 fuse-overlayfs                    x86_64         0.7.2-6.el7_8                       extras                    54 k
 fuse3-libs                        x86_64         3.6.1-4.el7                         extras                    82 k
 slirp4netns                       x86_64         0.4.3-4.el7_8                       extras                    81 k

Transaction Summary
=====================================================================================================================
Install  3 Packages (+5 Dependent packages)

Total download size: 102 M
Installed size: 423 M
Is this ok [y/d/N]: y
Downloading packages:
(1/8): container-selinux-2.119.2-1.911c772.el7_8.noarch.rpm                                   |  40 kB  00:00:04
warning: /var/cache/yum/x86_64/7/docker-ce-stable/packages/containerd.io-1.4.3-3.1.el7.x86_64.rpm: Header V4 RSA/SHA512 Signature, key ID 621e9f35: NOKEY
Public key for containerd.io-1.4.3-3.1.el7.x86_64.rpm is not installed
(2/8): containerd.io-1.4.3-3.1.el7.x86_64.rpm                                                 |  33 MB  00:00:04
(3/8): docker-ce-20.10.1-3.el7.x86_64.rpm                                                     |  27 MB  00:00:06
(4/8): docker-ce-rootless-extras-20.10.1-3.el7.x86_64.rpm                                     | 9.0 MB  00:00:01
(5/8): fuse-overlayfs-0.7.2-6.el7_8.x86_64.rpm                                                |  54 kB  00:00:01
(6/8): slirp4netns-0.4.3-4.el7_8.x86_64.rpm                                                   |  81 kB  00:00:01
(7/8): fuse3-libs-3.6.1-4.el7.x86_64.rpm                                                      |  82 kB  00:00:02
(8/8): docker-ce-cli-20.10.1-3.el7.x86_64.rpm                                                 |  33 MB  00:00:04
---------------------------------------------------------------------------------------------------------------------
Total                                                                                 11 MB/s | 102 MB  00:00:09
Retrieving key from https://download.docker.com/linux/centos/gpg
Importing GPG key 0x621E9F35:
 Userid     : "Docker Release (CE rpm) <docker@docker.com>"
 Fingerprint: 060a 61c5 1b55 8a7f 742b 77aa c52f eb6b 621e 9f35
 From       : https://download.docker.com/linux/centos/gpg
Is this ok [y/N]: y
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : 2:container-selinux-2.119.2-1.911c772.el7_8.noarch                                                1/8
  Installing : containerd.io-1.4.3-3.1.el7.x86_64                                                                2/8
  Installing : fuse3-libs-3.6.1-4.el7.x86_64                                                                     3/8
  Installing : fuse-overlayfs-0.7.2-6.el7_8.x86_64                                                               4/8
  Installing : slirp4netns-0.4.3-4.el7_8.x86_64                                                                  5/8
  Installing : 1:docker-ce-cli-20.10.1-3.el7.x86_64                                                              6/8
  Installing : docker-ce-rootless-extras-20.10.1-3.el7.x86_64                                                    7/8
  Installing : 3:docker-ce-20.10.1-3.el7.x86_64                                                                  8/8
  Verifying  : 1:docker-ce-cli-20.10.1-3.el7.x86_64                                                              1/8
  Verifying  : fuse-overlayfs-0.7.2-6.el7_8.x86_64                                                               2/8
  Verifying  : slirp4netns-0.4.3-4.el7_8.x86_64                                                                  3/8
  Verifying  : 2:container-selinux-2.119.2-1.911c772.el7_8.noarch                                                4/8
  Verifying  : docker-ce-rootless-extras-20.10.1-3.el7.x86_64                                                    5/8
  Verifying  : containerd.io-1.4.3-3.1.el7.x86_64                                                                6/8
  Verifying  : fuse3-libs-3.6.1-4.el7.x86_64                                                                     7/8
  Verifying  : 3:docker-ce-20.10.1-3.el7.x86_64                                                                  8/8

Installed:
  containerd.io.x86_64 0:1.4.3-3.1.el7    docker-ce.x86_64 3:20.10.1-3.el7    docker-ce-cli.x86_64 1:20.10.1-3.el7

Dependency Installed:
  container-selinux.noarch 2:2.119.2-1.911c772.el7_8         docker-ce-rootless-extras.x86_64 0:20.10.1-3.el7
  fuse-overlayfs.x86_64 0:0.7.2-6.el7_8                      fuse3-libs.x86_64 0:3.6.1-4.el7
  slirp4netns.x86_64 0:0.4.3-4.el7_8

Complete!

 

특정 버전 도커 설치하기

만약, 특정 버전의 도커를 설치하고 싶다면 다음과 같이 저장소에 설치할 수 있는 목록을 확인할 수 있다.

[root@dev-server lib]# yum list docker-ce --showduplicates | sort -r
docker-ce.x86_64            3:20.10.1-3.el7                    docker-ce-stable
docker-ce.x86_64            3:20.10.1-3.el7                    @docker-ce-stable
docker-ce.x86_64            3:20.10.0-3.el7                    docker-ce-stable
docker-ce.x86_64            3:19.03.9-3.el7                    docker-ce-stable
docker-ce.x86_64            3:19.03.8-3.el7                    docker-ce-stable
docker-ce.x86_64            3:19.03.7-3.el7                    docker-ce-stable
docker-ce.x86_64            3:19.03.6-3.el7                    docker-ce-stable
docker-ce.x86_64            3:19.03.5-3.el7                    docker-ce-stable
docker-ce.x86_64            3:19.03.4-3.el7                    docker-ce-stable
docker-ce.x86_64            3:19.03.3-3.el7                    docker-ce-stable
docker-ce.x86_64            3:19.03.2-3.el7                    docker-ce-stable
docker-ce.x86_64            3:19.03.14-3.el7                   docker-ce-stable
docker-ce.x86_64            3:19.03.13-3.el7                   docker-ce-stable
docker-ce.x86_64            3:19.03.12-3.el7                   docker-ce-stable
docker-ce.x86_64            3:19.03.11-3.el7                   docker-ce-stable
docker-ce.x86_64            3:19.03.10-3.el7                   docker-ce-stable
docker-ce.x86_64            3:19.03.1-3.el7                    docker-ce-stable

위의 목록은 저장소에 따라 다르고 CentOS 버전에 따라 다르다.
버전 마지막에 .el7 이라고 쓰여있는 것을 볼 수 있다.
.el7 은 CentOS 7 버전에서 사용할 수 있는 도커라고 생각하면 된다.
도커 버전은 두 번째 컬럼에서 하이픈(-) 앞의 내용만 잘라서 사용하면 된다.

예를 들어,

docker-ce.x86_64            3:20.10.1-3.el7                    docker-ce-stable

위의 버전을 사용하고 싶다면 docker-ce-3:20.10.1 와 같이 사용할 수 있다.

따라서, 위의 목록을 확인 후 특정 버전을 설치하고 싶다면 다음과 같이 설치할 수 있다.

# yum install docker-ce-<VERSION> docker-ce-cli-<VERSION> containerd.io

 

설치가 완료되었다면 도커를 시작하면 된다.

# systemctl start docker

실행중인 도커 확인

# systemctl status docker
[root@dev-server lib]# systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
   Active: active (running) since 수 2020-12-16 19:52:51 KST; 26s ago
     Docs: https://docs.docker.com
 Main PID: 15054 (dockerd)
    Tasks: 11
   Memory: 44.6M
   CGroup: /system.slice/docker.service
           └─15054 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

도커가 정상적으로 설치되었는지 테스트 이미지를 통해 확인해보자.

# docker run hello-world

hello-world 라는 테스트 이미지를 통해 컨테이너가 실행하면 정보 메시지를 출력하고 종료된다.

[root@dev-server lib]# docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
0e03bdcc26d7: Pull complete
Digest: sha256:1a523af650137b8accdaed439c17d684df61ee4d74feac151b5b337bd29e7eec
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

 

 

설치가 완료되었고 정상적으로 실행하는 것도 확인했다.
이제부터 도커를 사용하면 된다 !

마지막으로, 도커를 지우고 싶다면 다음 명령를 실행한다.

# yum remove docker-ce docker-ce-cli containerd.io

호스트의 이미지, 컨테이너, 볼륨 또는 사용자 정의 된 구성 파일은 자동으로 제거되지 않기 때문에
모든 이미지, 컨테이너 및 볼륨을 삭제하려면 다음 명령을 실행한다.

# rm -rf /var/lib/docker

따로 수정한 내용의 경우 수동으로 지워줘야 한다.

 

- 참고 사이트 -

docs.docker.com/engine/install/centos/

 

Install Docker Engine on CentOS

 

docs.docker.com

 

728x90
반응형
복사했습니다!