일일 정리

Docker container command

mysecurity 2025. 5. 21. 12:40

목차

1. Docker container command

1-1 container command

1-2 container command 환경변수

 

 

1. Docker container command

1-1 container command

※ container 명령어

# docker container run -[a, i, t, d, f, q . . .] [-- name name]
create
start
attach
stats
stop
rm
ps

 

container 는 생략 가능하다.

컨테이너 생성 시 이름을 지정하지 않을 경우 자동으로 지정되나, 되도록 [-- name name] 을 통해 컨테이너의 이름을 직접 지정한다.

 

● create

컨테이너를 생성한다.

docker [container] create [옵션] image

 

※ 옵션

-a, --attach 표준 입출력 접근
-i, --interactive 컨테이너에 입출력 허용
-t, --tty 터미널 할당
--rm 컨테이너 종료 시 자동 삭제
--name name 컨테이너 이름 지정

- 터미널에 입출력할 수 있도록 '-it'와 같이 함께 사용한다.

 

● start

컨테이너를 실행한다.

docker [container] start [옵션] container_name

 

※ 옵션

-a, -i create와 동일
-d 백그라운드에서 동작

- '-ai' 옵션을 통해 컨테이너 스타트와 동시에 접속 가능하다.

- 터미널 종료 시 exit로 종료하면 컨테이너도 종료된다. 터미널을 종료하더라도 컨테이너는 이용해야 하므로 ctrl+p+q로 종료하도록 한다.

 

● stats

컨테이너의 상태를 확인한다.

docker [container] stats container_name

 

● attach

컨테이너에 접속한다.

docker [container] attach container_name

 

● stop

컨테이너를 종료한다.

docker [container] stop container_name

 

● ps

컨테이너 목록을 확인한다.

docker [container] ps [옵션]

 

※ 옵션

-a 모든 컨테이너 출력 (stop 포함)
-q 컨테이너 id만 출력

- '-q' 옵션은 유용하게 자주 쓰인다.

 

● inspect

컨테이너의 상세 정보를 출력한다.

docker [container] inspect container_name

 

● rm

컨테이너를 삭제한다.

docker [container] rm [옵션] container_name [container_name ...]

- container_name 대신 container_id도 가능하다.

 

※ 옵션

-f 실행중인 컨테이너도 삭제

- 일반적인 rm으로 실행중인 mycentos 삭제가 불가하므로 '-f' 옵션을 이용한다.

 

- id를 이용한 삭제도 가능하다.

 

모든 컨테이너를 삭제할 경우 일일이 적기는 매우 번거로우므로 다음과 같은 명령어를 이용하여 모든 컨테이너를 삭제할 수 있다.

docker rm ‐f $(docker ps -aq)

- $ 뒤의 명령어에 대한 실행값을 rm -f 한다. 즉, 모든 컨테이너 id를 검색하여 삭제한다.

 

모든 컨테이너 삭제 명령어를 alias로 설정하여 간단히 이용 가능하다.

이때 alias로 설정한 것은 서버 재시작 시 없어지므로 설정파일에 alias 설정을 저장하여 이용한다. 

# vi /etc/profile
. . .
alias dcrm='docker rm ‐f $(docker ps ‐aq)'
. . .

- 특정 계정 적용 설정파일 경로: 해당 계정 홈 디렉토리/.bash_profile

- 모든 계정 적용 설정파일 경로: /etc/profile

 

● run

컨테이너를 생성과 시작을 동시 진행한다. 때문에 create -> start 보다는 run을 주로 사용한다.

 docker [container] run option ‐‐name <name> <image>

 

컨테이너 생성 시 적당한 옵션은 필수적이다.

- 적당한 옵션 없이 컨테이너 생성 시 정상적인 실행이 되지 않는다.

 

1-2 container command 환경변수

컨테이너를 실행할 때 mysql과 같이 환경변수를 필수적으로 필요로 하는 것들도 많다.

컨테이너의 환경 변수를 지정한다.

docker [container] run [‐e, ‐‐env‐file ...] ‐‐name <name> <image>

 

※ 옵션

-e 환경변수 환경변수 지정
--env-file = 파일 환경변수 파일 지정

 

다음과 같이 환경변수를 이용하여 유저 로그인이 가능하다. 이미지에 따른 환경변수는 도커 허브에서 확인한다.

- exec 명령어는 해당 컨테이너 안의 프로그램을 실행할 때 이용한다. 즉, mysql 컨테이너의 /bin/bash 쉘을 실행한다.

- '-p' 이후 적는 패스워드는 '-p'와 붙여 적으므로 주의한다.

- 컨테이너 안의 쉘에서 mysql 클라이언트에 접속한 것이므로 exit를 두 번 해도 컨테이너는 종료되지 않는다.

 

다음과 같이 환경변수 파일을 이용하여 유저 로그인이 가능하다.

- 컨테이너 안의 mysql 클라이언트에 접속한 것이므로 exit를 해도 컨테이너는 종료되지 않는다.

 

** 현재 작업 중인 곳을 제대로 인지하는 것이 중요하다.

'일일 정리' 카테고리의 다른 글

Docker Network  (0) 2025.05.23
Container & Process  (0) 2025.05.22
Docker Command, Docker Image & HUB  (2) 2025.05.19
DOCKER  (0) 2025.05.16
SQL 인젝션 방어  (1) 2025.05.15