* 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 |