이전 글에서 우리는 컨테이너 개념과 가상화의 차이, 도커 아키텍처, 도커 이미지와 컨테이너의 구조에 대해서 알아보았습니다. 이번에는 Ubuntu에 Docker를 설치해보고, 기본적인 명령어 몇가지를 다뤄보겠습니다.
1. Ubuntu에 Docker 설치하기
Linux 운영 체제에서 Docker를 설치하는 방법은 다소 다를 수 있습니다. Ubuntu, CentOS, Debian 등 다양한 배포판에 따라 설치 방법이 다를 수 있습니다. 다른 운영체제에 Docker를 설치하려면 이 문서를 참조하세요. 저는 EC2에 설치한 Ubuntu에 Docker를 설치해보겠습니다. Ubuntu에서 Docker를 설치하려면 다음 명령어를 차례로 실행하세요.
sudo apt update
sudo apt install docker.io -y
sudo systemctl start docker
sudo systemctl enable docker
설치를 마친 후에는 'docker --version' 명령어를 통해서 제대로 설치가 되었는지 확인할 수 있습니다. 아래와 같은 출력이 나온다면 정상적으로 설치되었습니다. 버전은 설치한 시점에 따라 다를 수 있으니 참고하시기 바랍니다.
2. Docker Command Line Interface (CLI) 사용하기
Docker를 사용하기 위해 명령 줄 인터페이스인 Docker CLI를 익히는 것이 중요합니다. Docker CLI를 사용하면 컨테이너 생성, 이미지 관리, 네트워킹 설정 등 다양한 작업을 수행할 수 있습니다. Docker CLI는 터미널에서 사용할 수 있습니다. 'docker --help' 명령어를 통해 도움말을 확인할 수 있습니다. 기본적인 명령어 몇가지를 알아보겠습니다.
2.1 docker run
'docker run' 명령어는 컨테이너를 생성하고 실행하는데 사용됩니다.
-d : 컨테이너를 백그라운드에서 실행합니다.
-p : 호스트 포트와 컨테이너 포트를 매핑합니다.
-v : 호스트 디렉토리와 컨테이너 디렉토리를 볼륨으로 연결합니다.
2.2 docker ps
'docker ps' 명령어는 현재 실행 중인 컨테이너의 목록을 확인하는데 사용됩니다.
'-a' : 중지된 컨테이너를 포함한 모든 컨테이너를 표시합니다.
'-q' : 컨테이너 ID만 표시합니다.
2.3 docker stop
'docker stop' 명령어는 실행 중인 컨테이너를 중지하는데 사용됩니다. 예를 들어, 실행 중인 컨테이너의 ID가 "9521b1cdba3f"인 경우 'docker stop 9521b1cdba3f'로 중지시킬 수 있습니다. 컨테이너 ID의 경우 맨 앞의 글자를 3개 이상 입력하시면 작동합니다.
2.4 docker rm
docker rm 명령어는 컨테이너를 삭제하는데 사용됩니다. 삭제할 컨테이너의 ID가 "9521b1cdba3f"인 경우 'docker rm 9521b1cdba3f'로 중지시킬 수 있습니다.
-f : 실행 중인 컨테이너를 강제로 삭제합니다.
3. Docker 네트워킹 및 데이터 볼륨 설정하기
Docker는 컨테이너 간 통신이나 컨테이너 내부와 외부 간의 통신을 위한 네트워킹 설정을 지원합니다. 또한 데이터를 영속적으로 저장하기 위해 데이터 볼륨을 설정할 수도 있습니다.
3.1 컨테이너 간 통신 설정하기
Docker는 기본적으로 컨테이너에 대한 가상 네트워크를 생성하여 컨테이너 간의 통신을 가능하게 합니다. docker network create 명령어를 사용하여 가상 네트워크를 생성할 수 있습니다. 예를 들어, my-network라는 이름의 가상 네트워크를 생성하는 명령어는 다음과 같습니다.
docker network create my-network
위 명령어를 실행하면 my-network라는 이름의 가상 네트워크가 생성됩니다. 컨테이너를 실행할 때 --network 옵션을 사용하여 컨테이너를 생성한 네트워크에 연결할 수 있습니다.
3.2 컨테이너와 호스트 간 통신 설정하기
Docker는 컨테이너와 호스트 간의 포트 포워딩을 설정하여 호스트에서 컨테이너로의 통신을 가능하게 합니다. docker run 명령어를 사용할 때 -p 옵션을 사용하여 포트 포워딩을 설정할 수 있습니다. 예를 들어, 호스트의 8080 포트와 컨테이너의 80 포트를 연결하는 명령어는 다음과 같습니다.
docker run -p 8080:80 <이미지_이름>
위 명령어를 실행하면 호스트의 8080 포트로 들어오는 요청이 컨테이너의 80 포트로 전달됩니다.
3.3 Docker 데이터 볼륨 설정하기
Docker는 컨테이너의 데이터를 영속적으로 저장하기 위해 데이터 볼륨을 사용합니다. 다음은 Docker 데이터 볼륨 설정을 위해 사용되는 명령어와 예시입니다. docker run 명령어를 사용할 때 -v 옵션을 사용하여 호스트 디렉토리와 컨테이너 디렉토리를 연결하여 데이터를 공유할 수 있습니다. 예를 들어, 호스트의 /data 디렉토리와 컨테이너의 /app/data 디렉토리를 연결하는 명령어는 다음과 같습니다.
docker run -v /data:/app/data <이미지_이름>
위 명령어를 실행하면 컨테이너의 /app/data 를 통해서 호스트의 /data 디렉토리에 접근할 수 있습니다. 또한, 컨테이너를 삭제하여도 삭제 시점의 /app/data 디렉토리의 파일은 호스트의 /data 디렉토리에 남아있게 됩니다.
이 글에서는 Docker 설치 및 환경 설정에 대해 알아보았습니다. 각 운영 체제별 Docker 설치 방법을 안내하고, Docker CLI 기본적인 사용법, 네트워킹 및 데이터 볼륨 설정에 대해 다루었습니다. 다음 글에서는 Docker 이미지를 생성하는 방법, Dockerfile을 사용하여 커스텀 이미지 빌드, Docker Hub 사용에 대해서 다뤄보겠습니다.
'DevOps > Docker' 카테고리의 다른 글
6. 도커 허브(Docker Hub) 사용법 (이미지 다운로드, 버전관리에 대해) (0) | 2023.07.18 |
---|---|
5. 도커 허브(Docker Hub) 사용법 (docker tag, docker push, 주의점) (0) | 2023.07.17 |
4. Docker 이미지 관리 실습 (Dockerfile의 구조, Dockerfile 작성, 커스텀 이미지 빌드 및 실행) (0) | 2023.07.15 |
3. Docker 이미지 관리 (Docker 이미지 소개, Dockerfile을 사용한 커스텀 이미지 빌드, Docker 이미지 레지스트리 활용) (0) | 2023.07.14 |
1. Docker 기본 개념과 원리 학습 (컨테이너VS가상화, 도커 아키텍처, 이미지 및 컨테이너의 구조) (0) | 2023.07.12 |
댓글