* Container의 LifeCycle

(출처 : https://m.post.naver.com/viewer/postView.nhn?volumeNo=17717982&memberNo=15488377)



* 컨테이너 생성

docker container create

- 이미지로부터 snap shot을 생성하여, container를 생성

(이미지 - Docker에서 서버 기능을 작동시키기 위해 필요한 Directory 및 파일들)


* 컨테이너 상태확인

docker container ps


* 컨테이너 생성 및 시작

docker container run [옵션] [이미지명]:[태그명] [인수]

- [옵션]

--attach, -a : 표준 입/출력/오류출력에 attach

--cidfile : container ID를 파일로 출력

--detach, -d : container를 생성하고 Background 에서 실행

--interactive, -i : container 의표준 입력을 연다

--tty, -t : 단말기 디바이스를 사용

e.g.) docker container run -it --name "test1" centos /bin/bash

옵션       컨테이너명 이미지명 컨테이너에서 명령 실행


* Prompt

- 명령을 입력할 수 있는 표시

- docker@default : ~ $

docker : 사용자명

default : 호스트명

~ : 작업 디렉토리

$ : 사용자 권한


* 컨테이너 로그 확인

docker container logs [옵션]

- [옵션]

-t : 타임스탬프 표시


* 컨테이너의 네트워크 설정

docker container run [네트워크 옵션] [이미지명]:[태그명] [인수]

e.g.) docker container run -d -] 8080:80 test1

- test1 이미지로 컨테이너를 생성 후, background 에서 실행 및 host 의 8080 포트와 컨테이너의 80포트를 맵핑

e.g.) docker container run -d --dns 192.168.1.1 test1

- DNS 서버 설정


* 컨테이너의 자원 설정

docker container run [옵션] [이미지명]:[태그명] [인수]

- [옵션]

--cpu-shares, -c : CPU의 사용 배분

--memory, -m : 메모리 제한

--volume=[Host의 Directory]:[Container의 Directory], -V : Host <-> Container 간 디렉토리 공유


* 컨테이너 생성 및 환경설정

docker container run [환경설정 옵션] [이미지명]:[태그명] [인수]


* 컨테이너 가동 상태 확인

docker container ls [옵션]


* 컨테이너 가동 확인

docker container stats [컨테이너 식별자]


* 컨테이너 시작/정지/재시작/일시정지/삭제

docker container start/stop/restart/pause/rm [옵션] [컨테이너 식별자]


* 네트워크 목록 표시

docker network ls [옵션]


* 네트워크 작성/상세정보 확인/삭제

docker network create/inspect/rm [옵션] [네트워크명]


* 네트워크 연결

docker network connect [옵션] [네트워크명] [컨테이너명]


* Overlay Network (=가상 네트워크)

- 물리 네트워크 상에서 소프트웨어적으로 에뮬레이트한 네트워크


* 가동중인 컨테이너 연결

docker container attach [컨테이너명]

- ctrl + c : 연결된 컨테이너 종료

  ctrl + p or q : 연결된 컨테이너에서 움직이는 process만 종료


* 가동중인 컨테이너에서 프로세스 실행

docker container exec [옵션] [컨테이너 식별자] [실행할 명령] [인수]


* 가동중인 컨테이너의 프로세스/포트전송 확인

docker container top/port [컨테이너 식별자]


* 가동중인 컨테이너의 프로세스 이름 변경

docker container rename [old name] [new name]


* 컨테이너 안의 파일 복사

docker container cp [컨테이너 식별자]:[파일경로] [Host의 디렉토리 경로]

docker container cp [Host의 파일] [컨테이너 식별자]:[파일경로]


* 컨테이너로부터 이미지 작성

docker container commit [옵션] [기존 컨테이너 식별자] [새 이미지명]:[새 태그명]

- [옵션]

--author, -a : 작성자 지정

--message, -m : 메시지를 지정

--charge, -c : commit 시, Dockerfile 명령 지정

--pause, -p : 컨테이너를 일시정지하고 commit


* 가동중인 컨테이너를 tar 파일로 출력

docker container export [컨테이너 식별자] > 파일명.tar

- 컨테이너 작동에 필요한 파일들을 모두 압축


* tar 파일로부터 이미지 작성

docker image import [파일 or URL] | - [이미지명]:[태그명]


* 이미지를 tar 파일로 저장

docker image save [옵션] [저장 파일명] [이미지명]

- 이미지의 레이어 구조를 포함한 형태로 압축


* 이미지를 읽어들이기

docker image load [옵션] [tar 파일명]


* 불필요한 이미지/컨테이너 일괄 삭제

docker system prune [옵션]

'SW > IT 인프라' 카테고리의 다른 글

[Docker] Docker 실행환경 구축  (0) 2020.02.09
[Docker] Docker 명령어  (0) 2020.02.09
[Docker] Docker 이미지 조작  (0) 2020.01.19
[Docker] 시스템과 인프라 기초 지식  (0) 2020.01.19
/////Immutable Infrastructure  (0) 2020.01.19

+ Recent posts