본문 바로가기
IT

[docker] 이미지, 컨테이너 생성

by laoching 2024. 7. 11.
728x90
반응형
도커 구성요소
  • 도커 클라이언트
  • docker-cli라고도 부르며 터미널이라고 생각하면 편함. dockerd API를 활용해 build, pull, run과 같은 명령을 내리며 도커 데몬과 통신함
  • 도커 데몬
  • dockerd라고 부르며 백그라운드에서 실행되는 데몬 프로세스에 해당됨. 도커 api 요청을 수신하고 도커 이미지, 컨테이너 등과 같은 도커와 관련된 객체를 관리함
  • containerd컨테이너의 실행만 담당하는 runc와 다른 역할을 하며 고수준 컨테이너 런타임에 해당함
  • 컨테이너 실행과 관리에 필요한 기능을 수행하는 오픈소스 컨테이너 런타임, 컨테이너의 생명주기를 모두 관리함. (생명주기: 도커 이미지 전송, 컨테이너 실행, 스토리지, 네트워크 등)
  • runccontainerd는 실행 이외에도 컨테이너 관리를 위한 다양한 역할을 하지만 runc는 실제 컨테이너 실행만 담당함
  • 컨테이너 실행과 관련된 작업을 수행하는 저수준 컨테이너 런타임
  • containerd-shim은 containerd와 runc 사이에서 작동하는 중간 프로세스에 해당하며 컨테이너 실행을 조정하는 역할을 함.
  • containerd는 runc와 통산함으로써 컨테이너를 실행함. 이때 containerd와 runc 사이에서 중개자 역할을 수행함

 

도커 이미지 다운로드

docker image pull ubuntu

docker image pull python:3.11.6 처럼 이미지의 태그 지정 가능

docker container run

docker container run ubuntu

docker container run python:3.11.6

docker image list check

docer image ls

docker container list check

docker container ls -a

-a 가 없으면 실행중인 컨테이너 목록만 보여줌

컨테이너 status에 exited → 종료 / exitec(0) → 정상종료 뜻함 / 컨테이너를 실행했을 때 컨테이너 내부 프로세스가 모두 종료되면 해당 컨테이너도 종료됨

컨테이너 내부에 들어가기

docker container -it ubuntu

stop container

docker container stop [container id] → stop container 10 seconds later

docker container kill [container id] → stop container immediately

attach

docker container start [container id]로 컨테이너 실행하고

docker container attach [container id]로 컨테이너에 접속 가능

remove container

docker container rm [container id]

remove image

docker image rm [image id]

이미지를 지우려면 참조하고 있는 컨테이너를 먼저 삭제해야 지울 수 있다.

 

나만의 이미지 만들기

컨테이너를 생성한다.

또 다른 터미널에서 docker container ls로 container id를 따고 아래와 같이 명령어를 입력해준다.

docker container commit ba71abcf4625 my-ubuntu:0.1 (야무지게 태그까지 걸어줌)

(my-ubuntu:0.1에는 기본 우분투와 달리 net-tools를 설치해놨음)

my-ubuntu 보이쥬?

그 다음 my-ubuntu:0.1을 실행

도커 기본 우분투 이미지에는 설치되어 있지 않은 ifconfig가 기본으로 설치된 my-ubuntu:0.1

나만의 이미지 만들기

컨테이너를 생성한다.

또 다른 터미널에서 docker container ls로 container id를 따고 아래와 같이 명령어를 입력해준다.

docker container commit ba71abcf4625 my-ubuntu:0.1 (야무지게 태그까지 걸어줌)

(my-ubuntu:0.1에는 기본 우분투와 달리 net-tools를 설치해놨음)

my-ubuntu 보이쥬?

 

그 다음 my-ubuntu:0.1을 실행

도커 기본 우분투 이미지에는 설치되어 있지 않은 ifconfig가 기본으로 설치된 my-ubuntu:0.1

 

docker container exec VS attach

exec : 실행 중인 컨테이너 내부에서 명령어를 실행 → 새로운 프로세스를 시작해 컨테이너 내에서 작업을 수행

attach : 실행 중인 컨테이너의 표준 입력, 표준 출력, 표준 오류 스트림에 연결할 때 사용 → 기존에 실행 중인 프로세스에 연결

728x90
반응형

'IT' 카테고리의 다른 글

[쿠버네티스] 쿠버네티스의 구조  (0) 2024.07.15
[docker] docker storage(volume, bind, tmpfs)  (0) 2024.07.11
맥에서 패키지 관리자 설치하기  (0) 2024.07.09
[AWS] CloudFront  (0) 2024.07.04
[AWS] Lambda  (0) 2024.07.02

댓글