반응형
목차
Image로 Container생성
도커 이미지 (Docker Image)
- 도커 이미지는 컨테이너를 생성하기 위한 템플릿 역할을 합니다. 이미지는 응용 프로그램을 실행하는 데 필요한 모든 것을 포함하고 있습니다. 예를 들어, 특정 소프트웨어 또는 서비스를 실행하는 데 필요한 코드, 런타임, 라이브러리, 환경 변수, 설정 파일 등이 이미지 안에 포함됩니다.
- 이미지는 불변의(read-only) 특성을 가지고 있으며, 이미지 자체를 수정하는 대신 새로운 이미지를 생성하여 업데이트합니다.
- 이미지는 Dockerfile이라는 스크립트를 통해 생성되며, 이 Dockerfile에는 이미지를 만들기 위한 명령어들이 담겨 있습니다.
- 이미지는 도커 허브(Docker Hub)와 같은 레지스트리에 저장되며, 여기서 이미지를 다운로드하여 사용할 수 있습니다.
도커 컨테이너 (Docker Container)
- 도커 컨테이너는 도커 이미지를 실행한 인스턴스입니다. 컨테이너는 이미지를 기반으로 하여 실제로 실행되고 있는 응용 프로그램입니다.
- 컨테이너는 격리된 환경에서 실행되므로, 다른 컨테이너와 시스템의 나머지 부분으로부터 독립적입니다.
- 컨테이너는 생성, 시작, 중지, 이동, 삭제 등을 할 수 있으며, 이러한 동작들은 도커 CLI나 도커 API를 통해 관리됩니다.
- 컨테이너는 실행 중에 데이터를 저장할 수 있는 쓰기 가능한 레이어를 가지고 있지만, 컨테이너를 삭제하면 이 데이터도 함께 사라집니다. 영구 데이터 저장이 필요한 경우, 볼륨이나 바인드 마운트를 사용해야 합니다.
1. 아래와 같이 ls로 이미지를 검색합니다.
ubuntu@ip-172-31-4-29:~$ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest ca2b0f26964c 2 weeks ago 77.9MB
hello-world latest d2c94e258dcb 10 months ago 13.3kB
ubuntu@ip-172-31-4-29:~$
2. create와 이미지명을 입력 해서 콘테이너를 만들어 줍니다. 만들면 아래와 같이 id값이 출력 됩니다.
ubuntu@ip-172-31-4-29:~$ docker create ubuntu
3aa7ae8b50f938304f7c71adbb340f2f9f2c9ccb29f77b15c028cede7f178803
.
3. ps 명령으로 현재 실행 중인 도커 컨테이너를 보여 줍니다.
ubuntu@ip-172-31-4-29:~$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3aa7ae8b50f9 ubuntu "/bin/bash" 2 minutes ago Created laughing_chebyshev
7fc5d1fcff44 hello-world "/hello" 8 days ago Exited (0) 8 days ago great_cerf
- CONTAINER ID: 컨테이너의 고유 식별자입니다. 이 ID는 도커 시스템 내에서 컨테이너를 구분하기 위해 사용됩니다. 예시에서는 3aa7ae8b50f9와 7fc5d1fcff44가 컨테이너 ID입니다.
- IMAGE: 컨테이너를 생성할 때 사용된 도커 이미지입니다. 이 이미지는 컨테이너 실행에 필요한 코드, 라이브러리, 환경 설정 등을 포함하고 있습니다. 예시에서는 ubuntu와 hello-world 이미지가 사용되었습니다.
- COMMAND: 컨테이너가 시작될 때 실행되는 기본 명령어입니다. 이 명령은 이미지 내부에 정의되어 있거나, 컨테이너를 시작할 때 명시적으로 지정할 수 있습니다. 예시에서는 ubuntu 컨테이너가 /bin/bash를, hello-world 컨테이너가 /hello를 실행하도록 설정되어 있습니다.
- CREATED: 컨테이너가 생성된 시간입니다. 이 정보는 얼마나 오래전에 컨테이너가 만들어졌는지를 나타냅니다. 예시에서는 ubuntu 컨테이너가 2 minutes ago에, hello-world 컨테이너가 8 days ago에 생성되었습니다.
- STATUS: 컨테이너의 현재 상태를 나타냅니다. 상태에는 Created, Running, Exited, Paused 등이 있을 수 있으며, Exited 상태일 경우 종료 코드와 함께 표시됩니다. 예시에서 ubuntu 컨테이너는 아직 시작되지 않은 상태(Created)이며, hello-world 컨테이너는 Exited (0) 상태로 정상 종료되었음을 나타냅니다.
- PORTS: 컨테이너가 사용하는 네트워크 포트와 관련된 매핑 정보입니다. 외부에서 컨테이너 내부의 애플리케이션에 접근하기 위해 사용됩니다. 예시에서는 포트 매핑이 설정되지 않았습니다.
- NAMES: 컨테이너의 이름입니다. 도커는 컨테이너를 구분하기 위해 사용자가 지정하거나, 자동으로 생성된 재미있는 이름을 할당합니다. 예시에서는 laughing_chebyshev와 great_cerf가 컨테이너 이름으로 사용되었습니다.
반응형
'웹관련프로그래밍(web programming) > Docker(도커)' 카테고리의 다른 글
[도커] apache 웹서버 설치 및 동작(Web server, Docker) (1) | 2024.03.27 |
---|---|
[도커] 컨테이너 실행 및 종료, 백그라운드 동작 (start, run, Docker, Container, background) (1) | 2024.03.25 |
[Docker] 도커 로그인, 로그아웃, 이미지 다운로드(Login, Logout, Image, ID, Password) (1) | 2024.03.13 |
[Docker] 도커 Compose와 Container란? 설치 방법(ubuntu) (0) | 2024.03.11 |