컨테이너 확인
Docker 컨테이너를 조회합니다.
docker ps [옵션]
-a 옵션
중지된 컨테이너까지 포함한 모든 컨테이너를 출력합니다.
컨테이너 실행
docker run [옵션] 이미지[:TAG] [command] ...
-d 옵션
detached mode(백그라운드에서 실행)
docker run -it -d openjdk:15 bash
999894c8a85bd306e08b5f15508694821b2638607e8414ef4130003d9b110231
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
999894c8a85b openjdk:15 "bash" 2 seconds ago Up 1 second condescending_haslett
-it 옵션
-i와 -t를 같이 사용하는것으로 터미널 입력을 위한 옵션
docker run -it openjdk:15 bash
bash-4.4#
-p 옵션
호스트의 포트(5432)와 컨테이너의 포트(5432)를 맵핑
호스트:컨테이너
docker run -p 5432:5432 -e POSTGRES_PASSWORD=pass postgres
The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.
...
-v 옵션
호스트와 컨테이너간 볼륨설정으로 호스트의 특정경로를 컨테이너의 파일시스템의 특정경로로 마운트 합니다.
echo test > test.txt
docker run -v ~/:/home/test openjdk:15 cat /home/test/test.txt
test
-name 옵션
컨테이너의 이름을 부여합니다.
docker run -it -d openjdk:15 bash
a91446f7651589d16bbb90999604f5012c69784ef173c39f18d3b4ace02b5f04
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a91446f76515 openjdk:15 "bash" 4 seconds ago Up 2 seconds funny_banach
docker kill a91446f76515
a91446f76515
docker run -it -d --name my-jdk openjdk:15 bash
6a770f779a7175e301d8ea5ce2e326129f2e97ab2d14b0dbf6a3f656c416df56
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6a770f779a71 openjdk:15 "bash" 4 seconds ago Up 3 seconds my-jdk
docker kill my-jdk
my-jdk
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6a770f779a71 openjdk:15 "bash" 47 seconds ago Exited (137) 6 seconds ago my-jdk
-e 옵션
환경변수를 설정. -e옵션을 사용하면 Dockerfile의 ENV 설정도 덮어쓰기 됩니다.
docker run -p 5432:5432 -e POSTGRES_PASSWORD=pass -e POSTGRES_USER=yang -e POSTGRES_DB=mydb -d postgres
1df5dcabdd3e78a94bffc8781f0a6913f1ad6a7348b3b2d10a484db7483ff379
--rm 옵션
프로세스 종료시 컨테이너 삭제합니다.
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bb590b2aec5e postgres "docker-entrypoint.s…" 7 months ago Exited (0) 7 months ago postgres_boot
dd305e0bbb61 jenkins/jenkins:lts "/sbin/tini -- /usr/…" 19 months ago Exited (143) 4 months ago quizzical_dirac
docker run -it --rm openjdk:15 bash
bash-4.4# exit
exit
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bb590b2aec5e postgres "docker-entrypoint.s…" 7 months ago Exited (0) 7 months ago postgres_boot
dd305e0bbb61 jenkins/jenkins:lts "/sbin/tini -- /usr/…" 19 months ago Exited (143) 4 months ago quizzical_dirac
컨테이너 중지
컨테이너 id나 이름을 사용하여 실행중인 컨테이너를 중지합니다.
docker stop [옵션] 컨테이너
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1ae589f17602 openjdk:15 "bash" 5 seconds ago Up 4 seconds naughty_bose
docker stop 1ae589f17602
1ae589f17602
컨테이너 시작
중지된 컨테이너를 시작합니다.
docker start [옵션] 컨테이너
docker start 1ae589f17602
1ae589f17602
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1ae589f17602 openjdk:15 "bash" 5 minutes ago Up 12 seconds naughty_bose
bb590b2aec5e postgres "docker-entrypoint.s…" 7 months ago Exited (0) 7 months ago postgres_boot
dd305e0bbb61 jenkins/jenkins:lts "/sbin/tini -- /usr/…" 19 months ago Exited (143) 4 months ago quizzical_dirac
컨테이너 명령어 전달
실행 중인 컨테이너에 명령어를 전달합니다.
docker exec [옵션] 컨테이너 전달할명령어
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1ae589f17602 openjdk:15 "bash" 11 minutes ago Up 6 minutes naughty_bose
docker exec 1ae589f17602 ls -al
total 56
drwxr-xr-x 1 root root 4096 Mar 19 03:15 .
drwxr-xr-x 1 root root 4096 Mar 19 03:15 ..
-rwxr-xr-x 1 root root 0 Mar 19 03:15 .dockerenv
lrwxrwxrwx 1 root root 7 Aug 1 2020 bin -> usr/bin
dr-xr-xr-x 2 root root 4096 Aug 1 2020 boot
...
컨테이너 로그
컨테이너의 로그를 확인합니다.
docker logs [옵션] 컨테이너
-f 옵션
로그를 실시간으로 확인할 수 있습니다.
컨테이너 삭제
컨테이너를 삭제합니다
docker rm [옵션] 컨테이너
-f 옵션
실행중인 컨테이너의 경우 정지후 삭제합니다.
docker rm 1ae589f17602
Error response from daemon: You cannot remove a running container 1ae589f1760261035c487b9cf5b29d06da9d9847a2107f4d798d31fd7fbfd0d8. Stop the container before attempting removal or force remove
docker rm -f 1ae589f17602
1ae589f17602
Docker 이미지
이미지 목록 확인
docker images [옵션]
이미지 다운로드
docker pull [옵션] 이름
이미지 삭제
docker rmi [옵션] 이미지
이외에도 더 많은 커맨드에 대해서는 래퍼런스를 참고하자.