발걸음/일지
[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 | 거의 사용하지 않음 |