웹사이트 검색

CentOS 및 RHEL 8/7에서 Docker 설치 및 기본 컨테이너 조작 알아보기 - 1부


4개의 기사로 구성된 이 시리즈에서는 운영 체제 수준의 최상위에서 실행되는 오픈 소스 경량 가상화 도구인 Docker에 대해 설명합니다. 컨테이너.

이러한 유형의 Linux 컨테이너는 빠르고 이식 가능하며 안전한 것으로 입증되었습니다. Docker 컨테이너에서 실행되는 프로세스는 항상 기본 호스트로부터 격리되어 외부 변조를 방지합니다.

이 가이드에서는 Docker를 설치하고 CentOS/RHEL 8/7에서 Docker 컨테이너를 생성 및 실행하는 방법에 대한 시작점을 제공하지만 Docker의 표면적인 내용은 거의 다루지 않습니다.

1단계: Docker 설치 및 구성

1. Docker의 이전 버전은 docker 또는 docker-engine이라고 불렀습니다. 이를 설치한 경우 다음을 수행해야 합니다. 최신 docker-ce 버전을 설치하기 전에 이를 제거하세요.

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

2. 최신 버전의 Docker 엔진을 설치하려면 Docker 저장소를 설정하고 yum-utils 패키지를 설치하여 Docker를 활성화해야 합니다. 시스템의 안정적인 저장소.

yum install -y yum-utils
yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

3. 이제 Docker 저장소와 containerd에서 최신 docker-ce 버전을 수동으로 설치합니다. 몇 가지 문제로 인해 Red Hat이 설치를 차단했기 때문입니다. docker-ce의 종속성인 containerd.io > 1.2.0-3.el7입니다.

yum install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm
yum install docker-ce docker-ce-cli

4. Docker 패키지가 설치된 후 데몬을 시작하고 상태를 확인한 후 아래 명령을 사용하여 시스템 전체에서 활성화합니다.

systemctl start docker 
systemctl status docker
systemctl enable docker

5. 마지막으로 다음 명령을 실행하여 컨테이너 테스트 이미지를 실행하여 Docker가 제대로 작동하는지 확인합니다.

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/

6. 이제 몇 가지 기본 Docker 명령을 실행하여 Docker에 대한 정보를 얻을 수 있습니다.

Docker에 대한 시스템 전체 정보
docker info

도커 버전의 경우
docker version

7. 사용 가능한 모든 Docker 명령 목록을 보려면 콘솔에 docker를 입력하세요.

docker

2단계: Docker 이미지 다운로드

8. Docker 컨테이너를 시작하고 실행하려면 먼저 호스트의 Docker Hub에서 이미지를 다운로드해야 합니다. Docker Hub는 저장소에서 많은 무료 이미지를 제공합니다.

예를 들어 Docker 이미지인 Ubuntu를 검색하려면 다음 명령을 실행하십시오.

docker search ubuntu

9. 필요에 따라 실행할 이미지를 결정한 후 아래 명령을 실행하여 로컬로 다운로드합니다. (이 경우 Ubuntu 이미지가 다운로드되어 사용됩니다. ):

docker pull ubuntu

10. 호스트에서 사용 가능한 모든 Docker 이미지를 나열하려면 다음 명령을 실행하십시오.

docker images

11. Docker 이미지가 더 이상 필요하지 않고 이를 호스트에서 제거하려면 다음 명령을 실행하십시오.

docker rmi ubuntu

3단계: Docker 컨테이너 실행

이미지에 대해 명령을 실행하면 기본적으로 컨테이너를 얻게 됩니다. 컨테이너에서 실행 중인 명령이 종료되면 컨테이너가 중지됩니다(실행되지 않거나 종료된 컨테이너가 표시됨). 동일한 이미지에 다른 명령을 다시 실행하면 새 컨테이너가 생성됩니다.

생성된 모든 컨테이너는 docker rm 명령을 사용하여 삭제하도록 선택할 때까지 호스트 파일 시스템에 유지됩니다.

12. 컨테이너를 생성하고 실행하려면 다운로드한 이미지(이 경우 Ubuntu)에 명령을 실행해야 하므로 기본 명령은 다음 예와 같이 cat 명령을 사용하여 컨테이너 내부에 배포 버전 파일을 저장합니다.

docker run ubuntu cat /etc/issue

위의 명령은 다음과 같이 구분됩니다.

docker run [local image] [command to run into container]

13. 컨테이너 중 하나를 생성하기 위해 실행한 명령으로 다시 실행하려면 먼저 컨테이너 ID(또는 Docker가 자동으로 생성한 이름)를 가져와야 합니다. 실행 중인 컨테이너와 중지된(실행되지 않는) 컨테이너 목록을 표시하는 아래 명령을 실행합니다.

docker ps -l 

14. 컨테이너 ID를 얻은 후에는 다음 명령을 실행하여 컨테이너를 생성하는 데 사용된 명령으로 컨테이너를 다시 시작할 수 있습니다.

docker start 923a720da57f

여기서 923a720da57f 문자열은 컨테이너 ID를 나타냅니다.

15. 컨테이너가 실행 중인 상태인 경우 docker ps 명령을 실행하여 ID를 얻을 수 있습니다. 실행 중인 컨테이너를 중지하려면 컨테이너 ID 또는 자동 생성된 이름을 지정하여 docker stop 명령을 실행하세요.

docker stop 923a720da57f
OR
docker stop cool_lalande
docker ps

16. 컨테이너 ID를 기억할 필요가 없도록 더 우아한 대안은 를 사용하여 생성하는 모든 컨테이너에 고유한 이름을 할당하는 것입니다. -name 옵션을 다음 예와 같이 명령줄에 추가합니다.

docker run --name ubuntu20.04 ubuntu cat /etc/issue

17. 그런 다음 컨테이너에 할당한 이름을 사용하여 컨테이너를 조작(시작, 중지, 제거)할 수 있습니다. Strong>, top, stats) 아래 예와 같이 이름을 지정하면 됩니다.

docker start ubuntu20.04
docker stats ubuntu20.04
docker top ubuntu20.04 

컨테이너를 생성하는 데 사용된 명령 프로세스가 완료되면 위 명령 중 일부는 출력을 표시하지 않을 수 있습니다. 컨테이너 내부에서 실행되는 프로세스가 완료되면 컨테이너가 중지됩니다.

4단계: 컨테이너에서 대화형 세션 실행

18. 컨테이너 셸 세션에 대화형으로 연결하고 다른 Linux 세션에서와 마찬가지로 명령을 실행하려면 다음 명령을 실행하세요.

docker run -it ubuntu bash

위의 명령은 다음과 같이 구분됩니다.

  1. -i는 대화형 세션을 시작하는 데 사용됩니다.
  2. -t는 TTY를 할당하고 stdin 및 stdout을 연결합니다.
  3. ubuntu는 컨테이너를 만드는 데 사용한 이미지입니다.
  4. bash(또는 /bin/bash)는 Ubuntu 컨테이너 내에서 실행 중인 명령입니다.

19. 실행 중인 컨테이너 세션을 종료하고 호스트로 돌아가려면 exit 명령을 입력해야 합니다. exit 명령은 모든 컨테이너 프로세스를 종료하고 중지합니다.

exit

20. 대화형으로 로그온한 컨테이너 터미널 프롬프트에서 컨테이너를 실행 상태로 유지해야 하지만 대화형 세션을 종료해야 하는 경우 종료<할 수 있습니다. 콘솔을 열고 Ctrl+pCtrl+q 키를 눌러 호스트 터미널로 돌아갑니다.

21. 실행 중인 컨테이너에 다시 연결하려면 컨테이너 ID 또는 이름이 필요합니다. docker ps 명령을 실행하여 ID 또는 이름을 가져온 다음 컨테이너 <를 지정하여 docker attachment 명령을 실행합니다. 위 이미지에 표시된 대로 Strong>ID 또는 이름:

docker attach <container id>

22. 호스트 세션에서 실행 중인 컨테이너를 중지하려면 다음 명령을 실행하세요.

docker kill <container id>

이것이 기본적인 컨테이너 조작의 전부입니다. 다음 튜토리얼에서는 웹 서버를 Docker 컨테이너에 저장, 삭제 및 실행하는 방법에 대해 설명합니다.