Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Info

Table of Contents


이미지 조작

현디렉토리의 Dockerfile로 이미지를 빌드

Code Block
docker build  ./
docker build -t REPOSITORY[:TAG] ./

...

Code Block
docker build --no-cache .

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

Code Block
docker commit CONTAINER[:TAG] IMAGE[:TAG]
// 컨테이너는 미리 종료시켜 둘 것

이미지빌드시의 명령어를 확인(Dockerfile정보)

...

1
2
3

...

Code Block
docker history IMAGE

...

다운로드한 이미지 리스트 출력

...

1
2
3

...

Code Block
docker images

URL로 부터 이미지를 읽어들이기

...

1
2
3

...

Code Block
docker import url REPOSITORY[:TAG]

...

URL의 파일을 이미지 내의 PATH에 생성

...

1
2
3

...

Code Block
docker insert IMAGE URL PATH

파일을 이미지로 읽어들이기

...

1
2
3

...

Code Block
docker load < image_filename.tar

...

이미지 다운로드

...

1
2
3
4

Code Block
docker pull 

...

IMAGE_NAME

...


docker pull IMAGE_NAME:TAG

...

이미지 삭제

...

1
2
3
4
5

...

Code Block
docker rmi IMAGE // 삭제할 이미지 이름을 열거
docker rmi $(docker images | grep '<none>' | awk 

...

'{print$3}')

...


// 태그가 없는 이미지를 모두 삭제한다

...

이미지를 파일로 출력

...

1
2
3

...

Code Block
docker save IMAGE > image_filename.tar

...

이미지 검색

...

1
2
3

...

docker search TERM
 

Code Block
docker search TERM

이미지에 태그 생성

...

1
2
3

Code Block
docker tag 

...

IMAGE[:TAG] NEWIMAGE[:TAG]

...

이미지 Repository에 PUSH하기

Code Block
docker push IMAGE[:TAG]

이미지 컨테이너 모두 삭제

Code Block
docker system prune -a


컨테이너 조작

기동중인 컨테이너에 접속

...

1
2
3
4

Code Block
docker attach CONTAINER               // exit로 종료하면 컨테이너도 중지
docker exec -it CONTAINER /bin/bash   // exit로 종료해도 컨테이너는 실행

...

컨테이너 내의 파일을 로컬에 복사

...

1
2
3

...

Code Block
docker cp 

...

CONTAINER:/remote/path/remote_filename /local/path/local_filename

...

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

...

1
2
3
4

Code Block
docker create IMAGE
docker create 

...

--name NAME IMAGE

...

컨테이너 작성후 이미지로부터 변경된 파일 확인

...

1
2
3

...

docker diff CONTAINER
 

Code Block
docker diff CONTAINER

컨테이너 내의 이벤트를 감시(기동/정지/작성 등)

...

1
2
3

...

Code Block
docker events

...

컨테이너 내의 COMMAND 실행

...

1
2
3

...

Code Block
docker exec CONTAINER COMMAND

...

컨테이너 내의 COMMAND를 대화식으로 실행

...

1
2
3

...

Code Block
docker exec -it CONTAINER COMMAND

...

컨테이너를 파일로 출력

...

1
2
3

Code Block
docker export CONTAINER > 

...

container_filename.tar

...

컨테이너의 상세정보 확인

...

1
2
3
4

...

Code Block
docker inspect CONTAINER
docker inspect  --format="{{.NetworkSettings.IPAddress}}" CONTAINER

...

format옵션을 이용하면 출력정보를 제어할 수 있다.

컨테이너 stdout을 확인

...

1
2
3

...

Code Block
docker logs CONTAINER

...

컨테이너와의 포트 전송 설정을 확인

...

1
2
3
4

Code Block
docker port CONTAINER
docker port CONTAINER 

...

PRIVATE_PORT

...

컨테이너 리스트 확인

...

1
2
3
4
5

...

컨테이너 삭제

...

1
2
3
4

...

Code Block
docker ps       // 실행중인 컨테이너만 출력
docker ps -a    // 정지중인 컨테이너를 포함
docker ps -aq   // 컨테이너의 해쉬 리스트만 출력

컨테이너 삭제

Code Block
docker rm CONTAINER 

...

[CONTAINER...] // 삭제할 컨테이너 이름을 열거

...


docker rm $(docker ps -aq)         // 모든 컨테이너 삭제

...

이미지로부터 컨테이너 기동

...

1
2
3
4
5

...

Code Block
docker run -itd IMAGE                        // 컨테이너를 만들어 띄우기만 할 뿐
docker run -it IMAGE /bin/bash               // 이름이 없으면 자동으로 부여됨
docker run -it --name NAME IMAGE /bin/bash   // 이름을 붙이고 bash 접속

...

로컬 디렉토리에 컨테이너 디렉토리를 mount 시키기

...

1
2
3
4

...

Code Block
docker run -it -v /var/www:/var/html IMAGE /bin/

...

bash   
// 로컬 디렉토리 /var/www를 컨테이너의 /var/html에 mount

...

로컬 포트 통신을 컨테이너 포트에 전송시키기

...

1
2
3
4
5
6

...

Code Block
docker run -it -p 

...

8080:80 IMAGE bash

...


// 로컬 포트 8080을 컨테이너 포트 80에 전송시킨다.

...


// httpd 컨테이너를 띄우면 기본 80 포트로 listening을 하고 있으므로

...


// 접속할 때에는 브라우저에서 http://xx.xx.xx.xx:8080 으로 접속한다.

...

컨테이너 기동/정지/재시작

...

1
2
3
4
5

Code Block
docker start CONTAINER
docker stop CONTAINER
docker restart CONTAINER

...

docker start CONTAINER
docker stop CONTAINER
docker restart CONTAINER
 

컨테이너에서 실행 중인 프로세스 확인

...

1
2
3

...

Code Block
docker top CONTAINER