발걸음/일지

[Docker] 커맨드

리꾸므 2023. 1. 13. 11:52

Docker 명령어

 docker 명령어 뒤에 오는 '무엇을', '어떻게' 부분을 커맨드라고 한다. 커맨드는 하위, 상위로 구성된다.

  • 상위 커맨드 : 무엇을
  • 하위 커맨드 : 어떻게
  • 대상 : 컨테이너명 또는 이미지명 등 구체적인 이름이 들어간다.
docker container run testimg
#docker 상위 커맨드 / 하위 커맨드 / 대상
#testimg인 이미지를 컨테이너로 실행하라

docker image pull testimg
#testimg 이미지를 내려받아라

 

추가적으로 '옵션', '인자'가 포함될 수 있다.

docker container run -d testimg --mode=1
#docker 상위 커맨드/ 하위 커맨드/ 옵션/ 대상/ 인자
#-d : 백그라운드로 실행하라
#--mode=1 : 모드 1로 실행하라

 

 

대표적인 명령어

상위 커맨드해당 하위 커맨드명령어내용생략 가능 여부주요 옵션
container start 컨테이너를 실행 O -i
stop 컨테이너를 정지 O 거의 사용하지 않음
create 도커 이미지로부터 컨테이너 생성 O --name -e -p -v
run 도커 이미지 내려받고 컨테이너 생성해 실행함 O --name -e -p -v -d -i -t
rm 정지 상태의 컨테이너를 삭제 O -f -v
exec 실행 중인 컨테이너 속에서 프로그램을 실행 O -i -t
ls 컨테이너 목록을 출력 *1 -a
cp 도커 컨테이너와 도커 호스트 간에 파일을 복사 O 거의 사용하지 않음
commit 도커 컨테이너를 이미지로 변환 O 거의 사용하지 않음
image pull 도커 허브 등의 리포지토리에서 이미지를 내려받음 O 거의 사용하지 않음
rm 도커 이미지를 삭제 *2 거의 사용하지 않음
ls 내려받은 이미지의 목록을 출력 X 거의 사용하지 않음
build 도커 이미지를 생성 O -t
volume create 볼륨을 생성 X -name
inspect 볼륨의 상세 정보를 출력 X 거의 사용하지 않음
ls 볼륨의 목록을 출력 X -a
prune 현재 마운트되지 않은 복륨을 모두 삭제 X 거의 사용하지 않음
rm 지정한 볼륨을 삭제 X 거의 사용하지 않음
network connect 컨테이너를 도커 네트워크에 연결 X 거의 사용하지 않음
disconnect 컨테이너의 도커 네트워크 연결을 해제 X 거의 사용하지 않음
create 도커 네트워크를 생성 X 거의 사용하지 않음
inspect 도커 네트워크의 상세 정보를 출력 X 거의 사용하지 않음
ls 도커 네트워크의 목록을 출력 X 거의 사용하지 않음
prune 현재 컨테이너가 접속하지 않은 네트워크를 모두 삭제 X 거의 사용하지 않음
rm 지정한 네트워크를 삭제 X 거의 사용하지 않음
단독 커맨드내용주요 옵션
login 도커 레지스트리에 로그인 -u -p
loguout 도커 레지스트리에 로그아웃 거의 사용하지 않음
search 도커 레지스트리를 검색 거의 사용하지 않음
version 도커 엔진 및 명령행 도구의 버전을 출력 거의 사용하지 않음

 

 

주요 옵션

옵션 형식내용
--name 컨테이너_이름 컨테이너 이름을 지정함
-p 호스트_포트번호:컨테이너_포트번호 포트 번호를 지정함
-v 호스트_디스크:컨테이너_디렉터리 볼륨을 마운트함
--net=네트워크_이름 컨테이너를 네트워크에 연결함
-e 환경변수_이름=값 환경변수를 설정함
-d 백그라운드로 실행함
-i 컨테이너에 터미널(키보드)을 연결함
-t 특수 키를 사용 가능하도록 함
-help 사용 방법 안내 메시지를 출력함

 

 

docker ps 커맨드

 컨테이너의 목록을 출력하는 명령어다.

CONTAINER ID  IMAGE     COMMAND       CREATED         STATUS        PORTS      NAMES
 1b23dafd22   httpd  "httpd-fore"  5 minutes ago   up 5 minutes     80/tcp   asw000ex1
항목내용
CONTAINER ID 컨테이너 식별자, 무작위 문자열, 본래는 64글자이나 앞에서부터 12글자만 출력한다.
IMAGE 컨테이너 만들때 사용하는 이미지의 이름
COMMAND 컨테이너 실행 시에 실행하도록 설정된 프로그램의 이름, 크게 신경쓰지 않아도 된다.
CREATED 컨테이너 생성 후 경과된 시간
STATUS 컨테이너의 현재 상태, 실행중이라면 'Up', 종료된 상태면 'Exited'가 출력된다.
PORTS 컨테이너에 할당된 포트 번호
NAMES 컨테이너의 이름

 

 

MySQL 연결

docker run --name mysql000ex7 -dit -e MySQL_ROOT_PASSWORD=qwer1234 mysql
항목내용
--name mysql000ex7 mysql000x7이라는 이름으로 컨테이너 생성
-dit 백그라운드에서 실행 및 키보드를 통해 컨테이너 내부의 파일 시스템을 조작
-e MYSQL_ROOT_PASSWORD=패스워드 MySQL의 루트 패스워드를 지정
mysql MySQL 이미지 이름, 버전 지정하지 않았으므로 최신버전이 사용된다.
-e MYSQL_DATABASE=데이터베이스_이름 데이터 베이스 이름
-e MYSQL_USER=MySQL_사용자이름 사용자 이름
-e MYSQL_PASSWORD=패스워드 비밀번호

 

 

Docker Network 생성

#네트워크 생성
docker network create 네트워크_이름
 
 
#네트워크 삭제
docker network rm 네트워크_이름
커맨드내용생략 가능 여부주요 옵션커맨드내용생략 가능 여부주요 옵션
connect 네트워크에 컨테이너를 새로이 접속 X 거의 사용하지 않음
disconnect 네트워크에서 컨테이너의 접속을 끊음 X 거의 사용하지 않음
create 네트워크를 생성 X 거의 사용하지 않음
inspect 네트워크의 상세 정보를 확인 X 거의 사용하지 않음
ls 네트워크의 목록을 확인 X 거의 사용하지 않음
prune 현재 아무 컨테이너도 접속하지 않은 네트워크를 모두 삭제 X 거의 사용하지 않음
rm 지정한 네트워크를 삭제 X 거의 사용하지 않음