웹사이트 검색

Ubuntu 20.04에서 Docker를 설치하고 사용하는 방법


Docker는 개발자와 시스템 관리자가 컨테이너를 사용하여 애플리케이션을 구축, 실행 및 공유할 수 있는 가장 널리 사용되는 오픈 소스 플랫폼입니다. 컨테이너화(애플리케이션 배포를 위해 컨테이너를 사용하는 것)는 컨테이너가 유연하고, 가벼우며, 이식 가능하고, 느슨하게 결합되고, 확장 가능하고, 더 안전하기 때문에 대중화되고 있습니다.

이 문서는 초보자가 몇 가지 기본 명령을 사용하여 Ubuntu 20.04 Linux 시스템에 Docker를 설치하고 사용하는 방법을 배울 수 있는 좋은 출발점입니다. 이 가이드에서는 Docker Community Edition(CE)을 설치합니다.

전제 조건:

  • Ubuntu 20.04 서버 설치.
  • sudo 명령을 실행할 수 있는 권한이 있는 사용자입니다.

우분투 20.04에 도커 설치하기

최신 버전의 Docker를 사용하려면 공식 Docker 저장소에서 설치합니다. 따라서 공식 Docker 저장소에 대한 GPG 키를 시스템에 추가한 후 다음을 사용하여 APT 소스에 저장소 구성을 추가하세요. 다음 명령.

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"

이제 다음 명령을 사용하여 시스템에 새 Docker 패키지를 포함하도록 APT 패키지 캐시를 업데이트합니다.

sudo apt update

다음으로, 표시된 대로 Docker 패키지를 설치합니다.

sudo apt install docker-ce

Docker 패키지 설치 프로세스 중에 패키지 설치 프로그램은 systemd(시스템 및 서비스 관리자)를 트리거하여 Docker 서비스를 자동으로 시작하고 활성화합니다. 다음 명령을 사용하여 docker 서비스가 활성 상태이고 시스템 시작 시 자동으로 시작되도록 활성화되어 있는지 확인합니다. 또한 상태를 확인하세요.

sudo systemctl is-active docker
sudo systemctl is-enabled docker
sudo systemctl status docker

다음을 포함하여 docker 서비스를 관리하고 제어하는 몇 가지 다른 systemctl 명령이 있습니다.

sudo systemctl stop docker			#stop the docker service
sudo systemctl start docker			#start the docker service
sudo systemctl  restart docker		#restart the docker service

시스템에 설치된 Docker CE 버전을 확인하려면 다음 명령을 실행하세요.

docker version

옵션이나 인수 없이 docker 명령을 실행하면 사용 가능한 docker 사용 명령을 볼 수 있습니다.

 
docker

sudo 명령을 사용하여 루트가 아닌 사용자로 Docker 관리

기본적으로 Docker 데몬은 사용자 루트가 소유한 (TCP 포트 대신) UNIX 소켓에 바인딩됩니다. 따라서 Docker 데몬은 항상 루트 사용자로 실행되며 docker 명령을 실행하려면 sudo를 사용해야 합니다.

게다가 Docker 패키지 설치 중에 docker라는 그룹이 생성됩니다. Docker 데몬이 시작되면 docker 그룹의 구성원이 액세스할 수 있는 UNIX 소켓을 생성합니다(루트 사용자와 동일한 권한을 부여함).

sudo 없이 docker 명령을 실행하려면 다음과 같이 docker에 액세스해야 하는 루트가 아닌 모든 사용자를 docker 그룹에 추가하세요. 이 예에서 명령은 현재 로그온한 사용자 ($USER) 또는 사용자 이름을 docker 그룹에 추가합니다.

sudo usermod -aG docker $USER
OR
sudo usermod -aG docker username

그룹에 대한 변경 사항을 활성화하려면 다음 명령을 실행하십시오.

newgrp docker 
groups

다음으로 sudo 없이 docker 명령을 실행할 수 있는지 확인하세요. 다음 명령은 테스트 이미지를 다운로드하여 컨테이너에서 실행합니다. 컨테이너가 실행되면 정보 메시지를 인쇄하고 종료됩니다. 이는 설치가 제대로 작동하는지 확인하는 또 다른 방법이기도 합니다.

docker run hello-world

Docker 이미지 작업

Docker 이미지는 Docker 컨테이너 생성 지침이 포함된 읽기 전용 템플릿 파일입니다. 사용자 지정 이미지를 만들 수도 있고, 다른 사람이 만들고 컨테이너 이미지를 위한 세계 최대 라이브러리이자 커뮤니티인 Docker Hub에 게시된 이미지만 사용할 수도 있습니다.

다음 명령을 사용하여 Docker Hub에서 centos 이미지를 검색할 수 있습니다.

docker search centos 

이미지를 로컬로 다운로드하려면 pull 명령을 사용하세요. 이 예에서는 공식 centos 이미지를 다운로드하는 방법을 보여줍니다.

docker pull centos

다운로드가 완료되면 로컬 시스템에서 사용 가능한 이미지를 나열할 수 있습니다.

docker images

이미지가 더 이상 필요하지 않으면 시스템에서 제거할 수 있습니다.

docker rmi centos
OR
docker rmi centos:latest    #where latest is the tag

Docker 컨테이너 실행 및 관리

Docker 컨테이너는 Linux에서 기본적으로 실행되고 호스트 시스템의 커널을 다른 컨테이너와 공유하는 프로세스입니다. Docker 이미지의 경우 컨테이너는 실행 중인 이미지일 뿐입니다.

centos 이미지를 기반으로 컨테이너를 시작하려면 다음 명령을 실행하세요. 여기서 “centos ”는 로컬 이미지 이름이고 “cat /etc/centos-release”입니다. ”은 컨테이너에서 실행되는 명령입니다.

docker run centos cat /etc/centos-release

컨테이너는 호스트와 별도로 파일 시스템, 네트워킹, 격리된 프로세스 트리 등 자체적인 격리된 프로세스를 실행합니다. 아래와 같이 컨테이너의 ID, ID 접두사 또는 이름을 사용하여 컨테이너를 조작할 수 있습니다. 위의 컨테이너 프로세스는 명령이 실행된 후 종료됩니다.

Docker 컨테이너를 나열하려면 다음과 같이 docker ps 명령을 사용하세요. 모든 상태에서 가장 최근에 생성된 컨테이너를 표시하려면 -l 플래그를 사용하세요.

docker ps
OR
docker ps -l

종료된 컨테이너를 포함하여 모든 컨테이너를 표시하려면 -a 플래그를 사용하세요.

docker ps -a

종료된 후 컨테이너 ID를 사용하여 컨테이너를 시작할 수도 있습니다. 예를 들어 이전 명령에서 컨테이너 ID는 94c35e616b91입니다. 표시된 대로 컨테이너를 시작할 수 있습니다(명령을 실행하고 종료한다는 점에 유의하세요).

docker start 94c35e616b91

해당 ID를 사용하여 실행 중인 컨테이너를 중지하려면 표시된 대로 중지 명령을 사용하세요.

docker stop 94c35e616b91

Docker를 사용하면 컨테이너 실행 시 --name 옵션을 사용하여 컨테이너에 이름을 할당할 수도 있습니다.

docker run --name my_test centos cat /etc/centos-release
docker ps -l

이제 컨테이너 이름을 사용하여 컨테이너를 관리(시작, 중지, 통계, 제거 등)할 수 있습니다.

docker stop my_test
docker start my_test
docker stats my_test
docker rm my_test

Docker 컨테이너에서 대화형 세션 실행

컨테이너 내에서 명령을 실행할 수 있도록 컨테이너에서 대화형 셸 세션을 시작하려면 다음 명령을 실행합니다.

docker run --name my_test -it centos

위 명령에서 -it 스위치는 Docker에게 컨테이너의 stdin에 연결된 의사 TTY를 할당하여 컨테이너에 대화형 bash 셸을 생성하도록 지시합니다.

표시된 대로 종료 명령을 실행하여 종료할 수 있습니다.

exit

종료하지 않으려면 컨테이너에서 분리하고 계속 실행하면 됩니다. 그렇게 하려면 CTRL+p를 누른 다음 CTRL+q 키 시퀀스를 사용하세요.

로컬 표준 입력, 출력 및 오류 스트림을 실행 중인 컨테이너에 연결하는 attach 명령을 사용하여 컨테이너에 다시 연결할 수 있습니다.

docker attach my_test

또한 -d 플래그를 사용하여 분리 모드에서 컨테이너를 시작할 수 있습니다. 그런 다음 attach 명령을 사용하여 터미널의 표준 입력, 출력 및 오류 스트림을 실행 중인 컨테이너에 연결합니다.

docker run --name my_test -d -it centos
docker attach my_test

마지막으로 다음 명령을 실행하여 호스트 세션에서 실행 중인 컨테이너를 중지할 수 있습니다.

docker kill my_test

그게 다야! 이 가이드에서는 Ubuntu 20.04 Linux에서 Docker CE를 설치하고 사용하는 방법을 다뤘습니다. 질문이 있는 경우 아래 피드백 양식을 사용하여 문의해 주세요.