InfraPlatform

Docker부터 Kubernetis 까지- (1) 도커설치

IT오이시이 2020. 3. 1. 12:13
728x90

Docker Engine은 애플리케이션을 빌드하고 컨테이너화하기위한 오픈 소스 컨테이너화 기술입니다. 도커는 아래와 같은 영역으로 나누어 집니다.

  • 오래 실행되는 데몬 프로세스가있는 서버 : dockerd.
  • 프로그램이 Docker 데몬과 통신하고 지시하는 데 사용할 수있는 인터페이스를 지정하는 API.
  • 명령 줄 인터페이스 (CLI) 클라이언트: docker.

CLI는 Docker API를 사용하여 스크립팅 또는 직접 CLI 명령을 통해 Docker 데몬을 제어하거나 상호 작용합니다.

도커 설치 하기

최근 Centos는 도커가 기본적으로 설치가 되어 있다. (minimal 설치라면 해야할 일들이 많아서 제외한다.)

사용자 sudo 권한 주기

 sudo  명령을 사용하기 위해서는 아래와 같은 작업이 필요합니다.

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

# 현재 사용자의 계정 그룹을 확인합니다. ( group : admin, vboxsf )
$ id
uid=1000(admin) gid=1000(admin) groups=1000(admin),975(vboxsf) 

$sudo usermod -aG admin,vboxsf, docker $USER

$ id
uid=1000(admin) gid=1000(admin) groups=1000(admin),974(docker),975(vboxsf)

 

OS 요구 사항

Docker Engine-Community를 설치하려면 CentOS 7의 유지 보수 버전이 필요합니다. 아카이브 된 버전은 지원되거나 테스트되지 않았습니다. 그리고 centos-extras저장소는 사용할 수 있어야합니다. 

이전 버전 제거

기존에는 "Docker"를 'docker'라고 했습니다.  docker-engine이 설치되어 있으면 관련 종속성과 함께 설치 제거한다.

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

yum보고서는 이러한 패키지 중 어느 것도 설치되어 있지 않은지 확인합니다.

저장소를 사용하여 설치

1.필요한 패키지를 설치

$ sudo yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2

2. 안정적인 저장소 를 설정

$ sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

ym-config-manager--disable--enable 을 이용하여 test 버전과 나이트 버번을 사용 중지 할 수 있습니다.
 sudo yum-config-manager --disable docker-ce-nightly

3. DOCKER ENGINE 설치

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

버전이 맞지 않는경우 --nobest 옵션을 사용하여 설치하는 것도 대안이다.

sudo dnf install --nobest docker-ce

 

아니면 명시적으로 아래 버전을 명시하여 설치하는 것도 방법이다.

$ https://download.docker.com/linux/centos/7/x86_64/stable/Packages/
containerd.io-1.2.6-3.3.el7.x86_64.rpm                                                2019-10-18 21:56:47 25.9 MiB
docker-ce-17.12.1.ce-1.el7.centos.x86_64.rpm                                          2019-10-18 21:56:49 30.4 MiB
docker-ce-18.09.9-3.el7.x86_64.rpm                                                    2019-10-18 21:56:52 21.2 MiB
docker-ce-19.03.6-3.el7.x86_64.rpm                                                    2020-02-13 02:56:07 24.5 MiB
docker-ce-cli-18.09.9-3.el7.x86_64.rpm                                                2019-10-18 21:56:53 15.6 MiB
docker-ce-cli-19.03.6-3.el7.x86_64.rpm                                                2020-02-13 02:56:08 39.5 MiB
docker-ce-selinux-17.03.2.ce-1.el7.centos.noarch.rpm                                  2019-10-18 21:56:54 28.4 KiB
docker-ce-selinux-17.03.3.ce-1.el7.noarch.rpm                                         2019-10-18 21:56:54 28.7 KiB
yum install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm -y
yum install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-19.03.6-3.el7.x86_64.rpm -y
yum install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-cli-19.03.6-3.el7.x86_64.rpm -y
yum install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-selinux-17.03.3.ce-1.el7.noarch.rpm -y

4. Docker를 시작

$ sudo systemctl start docker

5. hello-world 이미지 를 실행하여 Docker Engine-Community가 올바르게 설치되었는지 확인

$ sudo docker run hello-world

  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/
# rpm -qa | grep  docker
 docker-ce-cli-19.03.6-3.el7.x86_64
 docker-ce-19.03.6-3.el7.x86_64
# rpm -qa | grep containerd
 containerd.io-1.2.6-3.3.el7.x86_64

 

2. 도커 설정 기본 명령

$ docker --version
    Docker version 19.03.6, build 369ce74a3c

$ docker run hello-world

    Unable to find image 'hello-world:latest' locally
    latest: Pulling from library/hello-world
    1b930d010525: Pull complete
    Digest: sha256:fc6a51919cfeb2e6763f62b6d9e8815acbf7cd2e476ea353743570610737b752
    Status: Downloaded newer image for hello-world:latest

$ docker container ls --all
   CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
   b339ca93c51f        hello-world         "/hello"            36 seconds ago      Exited (0) 34 seconds ago                       determined_williamson 
  
728x90
반응형