본문으로 건너뛰기

CentOS에 Docker 설치하기

yum을 사용하여 설치

다음 명령을 실행하여 종속 패키지를 설치합니다:

$ sudo yum install -y yum-utils

다음 명령을 실행하여 yum 소프트웨어 저장소를 추가합니다:

# 공식 저장소
$ sudo yum install -y yum-utils
$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

Docker의 테스트 버전을 설치해야 하는 경우 다음 명령을 실행하십시오:

$ sudo yum-config-manager --enable docker-ce-test

Docker 설치

yum 소프트웨어 저장소 캐시를 업데이트하고 docker-ce를 설치합니다.

$ sudo yum install docker-ce docker-ce-cli containerd.io

CentOS8에 대한 추가 설정

CentOS8에서는 방화벽에 nftables을 사용하지만 Docker는 아직 nftables을 지원하지 않기 때문에 다음 설정을 사용하여 iptables을 사용할 수 있습니다:

/etc/firewalld/firewalld.conf를 변경합니다.

# FirewallBackend=nftables
FirewallBackend=iptables

또는 다음 명령을 실행합니다:

$ firewall-cmd --permanent --zone=trusted --add-interface=docker0

$ firewall-cmd --reload

자동 스크립트를 사용하여 설치

테스트 또는 개발 환경에서 Docker는 설치 과정을 단순화하기 위해 편리한 설치 스크립트 세트를 제공합니다. CentOS 시스템에서는 이 스크립트를 사용하여 설치할 수 있으며 --mirror 옵션을 사용하여 국내 소스를 사용할 수도 있습니다:

Docker의 테스트 버전을 설치하려면 test.docker.com에서 스크립트를 가져옵니다.

# $ curl -fsSL test.docker.com -o get-docker.sh
$ curl -fsSL get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh --mirror Aliyun
# $ sudo sh get-docker.sh --mirror AzureChinaCloud

이 명령을 실행하면 스크립트가 자동으로 모든 준비 작업을 완료하고 시스템에 Docker의 안정 버전을 설치합니다.

Docker 시작하기

$ sudo systemctl enable docker
$ sudo systemctl start docker

Docker 사용자 그룹 만들기

기본적으로 docker 명령은 Unix 소켓을 사용하여 Docker 엔진과 통신합니다. 루트 사용자와 docker 그룹의 사용자만 Docker 엔진의 Unix 소켓에 액세스할 수 있습니다. 보안상의 이유로 Linux 시스템에서는 일반적으로 루트 사용자를 직접 사용하지 않습니다. 따라서 docker를 사용해야 하는 사용자를 docker 사용자 그룹에 추가하는 것이 더 나은 관행입니다.

docker 그룹 만들기:

$ sudo groupadd docker

현재 사용자를 docker 그룹에 추가:

$ sudo usermod -aG docker $USER

현재 터미널에서 로그아웃한 후 다시 로그인하고 다음 테스트를 수행합니다.

Docker가 올바르게 설치되었는지 테스트

$ docker run --rm hello-world

Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
b8dfde127a29: Pull complete
Digest: sha256:308866a43596e83578c7dfa15e27a73011bdd402185a84c5cd7f32a88b501a24
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/

위의 정보가 정상적으로 표시되면 설치가 성공적임을 의미합니다.

커널 매개변수 추가

CentOS에서 Docker를 사용할 때 다음과 같은 경고 메시지가 표시되면:

WARNING: bridge-nf-call-iptables is disabled
WARNING: bridge-nf-call-ip6tables is disabled

이러한 기능을 활성화하려면 커널 구성 매개변수를 추가하십시오.

$ sudo tee -a /etc/sysctl.conf <<-EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF

그런 다음 sysctl.conf를 다시 로드합니다.

$ sudo sysctl -p