티스토리 뷰

 

1. Docker 엔진 버전 확인

# docker -v

 

 

 

 

 

 

 

2. Docker Run / 컨테이너 생성 및 실행

# docker run -i -t ubuntu:20.04

- Docker run 명령어는 컨테이너 생성 및 실행

 

- ubuntu 20.04 이미지가 로컬 도커 엔진에 존재하지 않으므로 도커 중앙 이미지 저장소인 도커 허브에서 자동으로 이미지를 내려받음 

 

- 현재 컨테이너 내부로 들어온 상태 (호스트 네임변경)

  > 호스트네임은 무작위의 16진수 해시값

  > -i 옵션 : 상호 입출력 설정

  > -t 옵션 : tty를 활성화하여 배시(bash) 셸을 사용하도록 컨테이너 설정

  > 위 두가지 옵션을 하나라도 사용하지 않으면 정상적으로 셸사용 불가

 

 

 

 

 

 

 

 

3. ls 명령어로 컨테이너 내부 확인

# ls

 

 

 

 

 

 

 

4. Docker 컨테이너 빠져나오기

- Docker 컨테이너 나오는 방법 2가지

  1) Shell에 exit 입력 or Ctrl + D 입력

     > 대신 위 방법은 컨테이너 내부에서 빠져나오면서 동시에 컨테이너를 정지

 

  2) Ctrl + P,Q 입력

     > 단순히 컨테이너의 셸에서만 빠져나오기 때문에 컨테이너 애플리케이션을 개발하는 목적으로 컨테이너를 사용할          때 이 방법을 많이 씀

 

 

 

 

 

 

 

5. Docker pull 로 Image 내려받기

# docker pull centos:8

- docker pull 명령어는 도커 이미지만 다운로드 한다. 

- docker run 은 이미지 다운로드 및 실행까지 동시에 한다.

 

# docker images

- docker images 명령어를 통해 다운로드 한 docker image 들을 확인한다. 

 

 

 

 

 

 

 

 

 

6. docker create 명령어로 컨테이너 생성

 

# docker create -i -t --name mycentos centos:8

- 컨테이너를 생성할 때는 run 명령어가 아닌 create 명령어를 사용할 수도 있다.

  > --name 옵션에는 컨테이너의 이름을 설정

 

 

- create 명령어의 결과로 출력된 무작위의 16진수 해시값은 컨테이너의 교유 ID

  > 너무길어 일반적으로 12자리만 사용

  > docker inspect 명령어로 컨테이너의 ID를 다시 확인가능

# docker inspect mycentos
# docker inspect mycentos | grep Id

 

 

 

 

 

 

 

 

 

7. docker start 컨테이너 시작 

- docker start 명령어로 만들어 놓은 컨테이너 실행

 

 

 

 

 

 

 

 

 

 

8. docker attach 컨테이너 내부로 들어가기

- docker attach 명령어로 실행중인 컨테이너 shell 접속

 

 

 

 

 

 

 

 

 

 

9. Docker 컨테이너 목록 확인

# docker ps
# docker ps -a

- docker ps : 정지되지 않은 컨테이너 목록을 보여줌

- docker ps -a : 정지된 컨테이너를 포함한 모든 컨테이너 출력

 

- 컨테이너 상태는 STATUS 항목에서 확인

   > Exited : 정지된 상태

   > Up .. seconds : 실행 중인 상태 

 

 

 

 

9.1 docker ps 출력 결과 설정

- ps 명령어의 출력 결과가 줄바꿈되어 알아보기 힘들 때는 --format 옵션에 {{.ID}}\t{{.Status}}와 같은 Go 템플릿을 입력해서 원하는 정보만 출력 가능

 

 

 

 

 

 

10. Docker container 이름 바꾸기

# docker rename 기존이름 바꿀이름

 

- 컨테이너의 이름은 중복될 수는 없지만 rename 명령어로 바꿀 수 있다.

 

 

 

 

11. Docker container 삭제

# docker rm 컨테이너이름

- 더 이상 사용하지 않는 컨테이너를 삭제할 때는 docker rm 명령어를 사용

- 한 번 삭제한 컨테이너는 복구할 수 없으므로 신중히 삭제

 

 

 

- 실행중인 컨테이너는 삭제가 불가능

- 컨테이너 stop 후, 삭제

 

 

 

 

# docker rm -f 컨테이너이름

- 실행중인 컨테이너를 강제 삭제 하기 위해서, -f 옵션을 부여

 

 

 

 

 

# docker container prune

- 실행중이지 않은 모든 컨테이너를 삭제하려면 docker container prune 명령어를 사용

 

 

 

 

 

# docker ps -a -q
# docker stop $(docker ps -a -q)
# docker rm $(docker ps -a -q)

- docker ps

  > -a 옵션은 컨테이너 상태와 관계 없이 모든 컨테이너를 출력

  > -q 옵션은 컨테이너 ID만 출력

 

- 이 두가지 옵션들을 사용해 출력된 컨테이너 리스트를 변수로 컨테이너를 삭제하면 모든 컨테이너를 간단히 삭제

 

 

 

 

 

***요약 정리***

1. docker run 명령어는 pull, create, start 명령어를 일괄적으로 실행한 후 attach가 가능한 컨테이너라면 컨테이너 내부까지 들어감.

 

2. docker create 명령어는 도커 이미지를 pull 한 뒤에 컨테이너를 생성만 할 뿐 start, attach를 실행하지 않음.

 

3. 보통은 컨테이너를 생성함과 동시에 시작하기 때문에 run 명령어를 더 많이 사용

 

4. 실행중인 컨테이너는 별도의 옵션없이 삭제 불가능 ( f 옵션으로 가능 )