[Docker] 4. 컨테이너의 기본적인 사용 방법

sorzzzzy·2022년 5월 1일
0

Docker&Kubernetes

목록 보기
4/12
post-thumbnail

🏷 컨테이너의 기본적인 사용 방법

컨테이너 사용의 기본은 도커 명령어

✔️ 명령어와 대상

컨테이너 사용의 기본은 도커 명령어이다.
컨테이너를 다루는 모든 명령은 docker 명령어로 시작한다.

docker 명령어 뒤에 오는 '무엇을', '어떻게'에 해당하는 부분을 커맨드라고 한다.
커맨드는 다시 상위 커맨드와 하위 커맨드로 구성되며 상위 커맨드가 '무엇을', 하위 커맨드가 '어떻게'에 해당하는 내용을 지정한다.

대상에는 컨테이너명 또는 이미지명 등 구체적인 이름이 들어간다.
docker 명령어 뒤로 '무엇을' '어떻게' '대상' 순으로 지정하면 된다.

docker + 커맨드 + 대상
➡️ 이때 커맨드는 상위 커맨드와 하위 커맨드로 구성된다.


✔️ 옵션과 인자

도커를 다루다 보면 긴 명령어를 마주할 때가 있다.
명령어의 기본 형태는 docker + 커맨드 + 대상 이지만, 커맨드에는 앞서 설명한 대상 외에도 옵션인자라는 추가 정보가 붙는다.

예를 들어, container run 커맨드에 -d 라는 옵션을, penguin 을 대상으로 --mode=1 이라는 인자를 붙이면,

docker container run -d penguin --mode=1 이라는 명령어가 완성된다.

-d 는 '백그라운드로 실행하라', --mode=1 은 '모드 1로 실행하라' 라는 의미지만,
모든 명령어에 옵션이나 인자가 붙는 것은 아니며 커맨드와 대상만으로 구성된 간단한 명령어도 많다.


기본적인 명령어-정리

docker 커맨드 (옵션) 대상 (인자)
➡️ docker 명령어의 기본적인 형태

✔️ 커맨드(상위/하위 커맨드)

도커 명령어의 커맨드는 '무엇을' '어떻게' 할 것인지 지정하는 부분이다.
'컨테이너'를 '실행' 하고 싶다면, container run 커맨드를 사용한다.


✔️ 옵션

옵션은 커맨드에 세세한 설정을 지정하는 용도로 쓰인다.
백그라운드로 실행할 때는 -d, 키보드를 통해 조작하고 싶다면 -i 또는 -t 를 붙이는 등, 커맨드의 실행 방법 또는 커맨드에 전달할 값을 지정한다.

옵션은 - 또는 -- 으로 시작하는 것이 일반적이지만 - 기호를 붙이지 않는 경우도 있다.
둘 중 무엇을 사용할지는 커맨드 작성자의 취향이므로 명확한 기준은 없다.

커맨드에 어떤 값을 전달하고 싶다면 --name 같은 옵션 뒤에 옵션의 값을 지정한다.

또한 -d 와 같이 - 를 하나만 사용하는 옵션은 한꺼번에 모아 쓸 수 있다.
-d -i -t ➡️ -dit


✔️ 대상

대상은 커맨드와 달리 구체적인 이름을 지정한다.
이름이 penguin 인 이미지의 컨테이너를 실행하려면,
container start [옵션] penguin 명령어를 사용한다.


✔️ 인자

대상에 전달할 값을 지정한다.
문자 코드 또는 포트 번호 등을 전달할 수 있지만, 사실상 인자를 지정하는 경우는 그리 많지 않다.


간단한 명령어를 사용해보자

docker version도커의 버전을 확인하는 명령어로 옵션이나 인자, 대상이 없어도 실행할 수 있다.


대표적인 명령어

✔️ 컨테이너 조작 관련 커맨드(상위 커맨드 container)

docker container [하위커맨드] [옵션]

컨테이너를 실행하거나 종료하고, 컨테이너 목록을 확인하는 등 컨테이너를 다루기 위해 사용하는 커맨드이다.
컨테이너를 대상으로 어떤 일을 할지는 하위 커맨드를 통해 지정한다.

start stop create run rm ls 등이 존재한다.


✔️ 이미지 조작 관련 커맨드(상위 커맨드 image)

docker image [하위커맨드] [옵션]

이미지를 내려받거나 검색하는 등 이미지와 관련된 기능을 실행하는 커맨드이다.
이미지를 대상으로 어떤 일을 할지는 하위 커맨드를 통해 지정한다.

pull rm ls build 등이 존재한다.


✔️ 볼륨 조작 관련 커맨드(상위 커맨드 volume)

docker volume [하위커맨드] [옵션]

볼륨 생성, 목록 확인, 삭제 등 볼륨(컨테이너에 마운트 가능한 스토리지)과 관련된 기능을 실행하는 커맨드이다.
볼륨으르 대상으로 어떤 일을 할지는 하위 커맨드를 통해 지정한다.

create inspect ls prune rm 등이 존재한다.


✔️ 네트워크 조작 관련 커맨드(상위 커맨드 network)

docker network [하위커맨드] [옵션]

도커 네트워크의 생성, 삭제, 컨테이너의 네트워크 접속 및 접속 해제 등 도커 네트워크와 관련된 기능을 실행하는 커맨드이다.
도커 네트워크란 도커 요소 간의 통신에 사용하는 가상 네트워크를 가리킨다.

connect disconnect create inspect ls rm 등이 존재한다.


🏷 컨테이너의 생성과 삭제, 실행, 정지

지금부터는 실제로 컨테이너를 생성하고 실행해 보겠다.

컨테이너를 생성하고 실행하는 커맨드

docker run [옵션] [이미지] [인자]
➡️ docker pull + docker create + docker start

컨테이너를 생성해 실행하는 커맨드이다.
docker pull + docker create + docker start 기능을 하나로 합친 것과 같다.
현재 해당 이미지가 없다면 먼저 이미지를 내려받고, '대상'으로는 사용할 이미지의 이름을 지정한다.

컨테이너의 이름은 --name, 포트 번호는 -p, 볼륨을 마운트할 때는 -v 등을 옵션으로 사용할 수 있다.


컨테이너를 정지하는 커맨드

docker stop [컨테이너 이름]

컨테이너를 폐기하기 위해서는 먼저 컨테이너를 정지시켜야 한다.
동작 중인 컨테이너를 그대로 삭제할 수는 없다.

이 커맨드에서는 옵션이나 인자를 지정하는 경우가 거의 없다.


컨테이너를 삭제하는 커맨드

docker rm [컨테이너 이름]

컨테이너를 삭제하는 커맨드로, 이 커맨드 또한 옵션이나 인자를 지정하는 경우가 거의 없다.


docker ps 커맨드

docker ps & docker ps -a
= docker container ls

컨테이너의 생애주기를 관장하는 커맨드 외에 자주 사용하는 커맨드가 바로 docker ps 커맨드이다.

컨테이너의 목록을 출력하는 기능을 하는데, docker ps 는 현재 실행 중인 컨테이너의 목록을 출력하며
docker ps -a 옵션을 추가하면 현재 존재하는 컨테이너(정지 상태의 컨테이너 포함)의 목록을 출력한다.

컨테이너 목록을 출력하면 여러가지 정보를 확인할 수 있다.

  • CONTAINER ID : 컨테이너 식별자
  • IMAGE : 컨테이너를 만들 때 사용한 이미지 이름
  • COMMAND : 컨테이너 실행 시 실행하도록 설정된 프로그램 이름
  • CREATED : 컨테이너 생성 후 경과된 시간
  • STATUS : 컨테이너의 현재 상태. 실행중이라면 Up, 종료된 상태라면 Exited
  • PORTS : 컨테이너에 할당된 포트 번호 호스트 포트 번호/컨테이너 포트 번호 형식으로 출력
  • NAMES : 컨테이너 이름

실습

실습 대상은 아파치 컨테이너이다.
아파치는 웹 서버 기능을 제공하는 소프트웨어로, 우리가 사용하는 상당수의 웹 사이트가 아파치로 구축돼 있다.

✔️ 컨테이너 생성

docker run --name apa000ex1 -d httpd
아파치 이미지(httpd)를 사용해 apa000ex1 이라는 이름의 컨테이너를 생성하고 실행하는 명령어이다.


✔️ 컨테이너 상태 확인

docker ps docker ps -a
ps 커맨드를 사용해 컨테이너가 실행 중인지 확인할 수 있다.


✔️ 컨테이너 중지

docker stop apa000ex1
stop 커맨드를 사용해 아파치 컨테이너를 종료했다.
ps 커맨드를 통해 종료 상태인지 확인할 수 있다.
-a 옵션을 통해 종료된 컨테이너 목록까지 전부 확인할 수 있다.


✔️ 컨테이너 삭제

docker rm apa000ex1
rm 커맨드를 사용해 컨테이너를 삭제했다.
컨테이너를 삭제했기 때문에 docker ps -a 커맨드를 실행해도 컨테이너 정보가 뜨지 않는다.

profile
Backend Developer

0개의 댓글