Docker 명령어 100개
기본적인 명령어부터 고급 명령어까지 포함해서 Docker를 더 깊이 이해하는 데 큰 도움이 될 거야.
기본 명령어
1. docker pull : 도커 이미지를 Docker Hub에서 다운로드.
(도커 허브에서 다양한 이미지를 다운받거나 올릴 수 있다. 여기서 이미지라는 것은 컨테이너를 실행하기 위한 파일, 설정, 코드 등을 포함한 템플릿 같은 것이다. 이미지를 바탕으로 컨테이너를 생성하거나 실행할 수 있다.)
2. docker images : 로컬에 저장된 이미지 목록 확인.
(docker images ls 도 가능하다.)
3. docker run : 새로운 컨테이너를 생성하고 실행.
(docker run에 추가 되는 옵션 -n , --network, -p, -v, -e 등이 있으며 자세한 것은 아례 예시를 통해 참고 하길 바란다.)
docker run \
--name my_container \ # 컨테이너 이름 설정
-d \ # 백그라운드 실행
-p 8080:80 \ # 포트 매핑 (호스트:컨테이너)
-e MY_ENV_VAR=value \ # 환경 변수 설정
-v /host/path:/container/path \ # 볼륨 마운트
--rm \ # 컨테이너 종료 시 자동 삭제
-it \ # 터미널 인터랙티브 모드
--network my_network \ # 네트워크 설정
--cpus="1.5" \ # CPU 사용 제한
--memory="512m" \ # 메모리 사용 제한
--gpus all \ # GPU 할당
--restart unless-stopped \ # 재시작 정책 설정
-u 1000:1000 \ # 사용자 설정 (UID:GID)
--entrypoint /bin/bash \ # 엔트리포인트 대체
--privileged \ # 특권 모드로 실행
--log-driver json-file \ # 로그 드라이버 설정
--log-opt max-size=10m \ # 로그 옵션 설정
--detach-keys="ctrl-c" \ # 종료 단축키 설정
--cap-add NET_ADMIN \ # 특정 커널 기능 추가
--cap-drop SYS_ADMIN \ # 특정 커널 기능 제거
--dns 8.8.8.8 \ # DNS 서버 설정
--hostname my_custom_hostname \ # 컨테이너 호스트네임 설정
--label mylabel=value \ # 컨테이너에 라벨 추가
--link other_container:alias \ # 다른 컨테이너에 링크
--volume-driver local \ # 볼륨 드라이버 설정
--security-opt seccomp=unconfined \ # 보안 옵션 설정
--device /dev/sda:/dev/xvda \ # 호스트 장치에 접근
--ipc=host \ # IPC 네임스페이스 공유
--shm-size=1g \ # 공유 메모리 크기 설정
--uts=host \ # UTS 네임스페이스 공유
--pid=host \ # PID 네임스페이스 공유
--cgroup-parent=my_cgroup \ # Cgroup 설정
--cpu-shares 512 \ # CPU 공유 설정
--blkio-weight 500 \ # 블록 I/O 가중치 설정
--ulimit nofile=1024:2048 \ # Ulimit 설정
--init \ # 컨테이너에 init 프로세스 실행
--readonly \ # 컨테이너의 파일 시스템을 읽기 전용으로 설정
nginx # 이미지 지정 (여기서는 nginx)
4. docker ps : 실행 중인 컨테이너 목록 확인.
5. docker ps -a : 모든(종료된 포함) 컨테이너 목록 확인.
6. docker stop : 실행 중인 컨테이너 중지.
7. docker start : 중지된 컨테이너 다시 실행.
8. docker restart : 컨테이너 재시작.
9. docker rm : 중지된 컨테이너 삭제.
10. docker rmi : 이미지 삭제.
11. docker exec : 실행 중인 컨테이너에서 명령어 실행.
(docker exec -it <컨테이너 이름 or ID> bash) 를 쓰면 해당 컨테이너의 내부에 접속할 수 있다.
12. docker logs : 컨테이너 로그 확인.
13. docker inspect : 컨테이너 또는 이미지의 세부 정보 확인.
14. docker top : 컨테이너 내부에서 실행 중인 프로세스 확인.
15. docker stats : 실행 중인 컨테이너의 리소스 사용량(CPU, 메모리 등) 확인.
16. docker commit : 컨테이너를 이미지로 저장.
17. docker build : Dockerfile을 이용해 이미지를 빌드.
18. docker push : 이미지를 Docker Hub에 업로드.
19. docker tag : 이미지에 새로운 태그를 지정.
20. docker search : Docker Hub에서 이미지 검색.
21. docker version : Docker 버전 정보 확인.
22. docker info : Docker 시스템에 대한 전반적인 정보 확인.
23. docker attach : 실행 중인 컨테이너에 연결해 입출력 확인.
24. docker cp : 컨테이너와 호스트 간 파일 복사.
25. docker kill : 컨테이너를 강제로 중지.
26. docker pause : 컨테이너 일시 정지.
27. docker unpause : 일시 정지된 컨테이너 재개.
28. docker diff : 컨테이너의 파일 시스템 변경 사항 확인.
29. docker history : 이미지의 생성 히스토리 확인.
30. docker port : 컨테이너의 포트 매핑 확인.
31. docker rename : 컨테이너 이름 변경.
32. docker update : 실행 중인 컨테이너의 설정 업데이트.
네트워크 관련 명령어
33. docker network ls : Docker 네트워크 목록 확인.
34. docker network create : 새로운 네트워크 생성.
35. docker network inspect : 네트워크의 세부 정보 확인.
(docker network inspect <네트워크 이름>)
36. docker network connect : 컨테이너를 네트워크에 연결.
37. docker network disconnect : 컨테이너를 네트워크에서 분리.
38. docker network rm : 네트워크 삭제.
39. docker network prune : 사용되지 않는 네트워크 삭제.
볼륨 관련 명령어
40. docker volume ls : Docker 볼륨 목록 확인.
41. docker volume create : 새로운 볼륨 생성.
42. docker volume rm : 볼륨 삭제.
43. docker volume inspect : 볼륨의 세부 정보 확인.
44. docker volume prune : 사용하지 않는 볼륨 삭제.
이미지 관리 명령어
45. docker image ls : 로컬 이미지 목록 확인.
46. docker image rm : 이미지 삭제.
47. docker image prune : 사용하지 않는 이미지 삭제.
48. docker image tag : 이미지에 새로운 태그 추가.
49. docker image inspect : 이미지의 세부 정보 확인.
50. docker image history : 이미지의 생성 히스토리 확인.
51. docker image build : Dockerfile을 이용해 이미지 빌드.
52. docker image pull : Docker Hub에서 이미지 다운로드.
53. docker image push : 이미지를 Docker Hub에 업로드.
54. docker image load : 이미지 파일(.tar)을 로컬에 로드.
55. docker image save : 이미지를 파일로 저장.
컨테이너 관리 명령어
56. docker container ls : 실행 중인 컨테이너 목록 확인.
57. docker container stop : 컨테이너 중지.
58. docker container start : 중지된 컨테이너 실행.
59. docker container restart : 컨테이너 재시작.
60. docker container rm : 컨테이너 삭제.
61. docker container prune : 사용하지 않는 컨테이너 삭제.
62. docker container inspect : 컨테이너의 세부 정보 확인.
63. docker container exec : 컨테이너에서 명령어 실행.
64. docker container logs : 컨테이너 로그 확인.
65. docker container commit : 컨테이너를 이미지로 저장.
시스템 관리 명령어
66. docker system df : Docker 디스크 사용량 확인.
67. docker system prune : 사용하지 않는 모든 리소스 삭제(컨테이너, 이미지, 네트워크, 볼륨).
68. docker system info : Docker 시스템 정보 확인.
69. docker system events : Docker 시스템 이벤트 확인.
Docker Compose 관련 명령어
70. docker-compose up : docker-compose.yml 파일에 정의된 여러 컨테이너 실행.
71. docker-compose down : docker-compose로 실행된 모든 컨테이너 중지 및 네트워크 제거.
72. docker-compose build : docker-compose.yml 파일에 정의된 이미지 빌드.
73. docker-compose pull : docker-compose.yml 파일에 정의된 이미지를 Docker Hub에서 다운로드.
74. docker-compose ps : docker-compose로 실행된 컨테이너 목록 확인.
75. docker-compose logs : docker-compose로 실행된 컨테이너의 로그 확인.
76. docker-compose stop : docker-compose로 실행된 컨테이너 중지.
77. docker-compose restart : docker-compose로 실행된 컨테이너 재시작.
78. docker-compose exec : 실행 중인 컨테이너에서 명령어 실행.
79. docker-compose config : docker-compose.yml 파일의 설정 확인.
80. docker-compose rm : docker-compose로 실행된 컨테이너 삭제.
고급 명령어
81. docker swarm init : Docker Swarm 클러스터 초기화.
82. docker swarm join : Swarm 노드에 참여.
83. docker swarm leave : Swarm 노드에서 나가기.
84. docker node ls : Swarm 노드 목록 확인.
85. docker service create : 새로운 서비스 생성.
86. docker service ls : Swarm 서비스 목록 확인.
87. docker service rm : Swarm 서비스 삭제.
88. docker service scale : Swarm 서비스의 컨테이너 수 조정.
89. docker service update : Swarm 서비스 업데이트.
90. docker stack deploy : docker-compose 파일을 이용해 스택 배포.
91. docker stack rm : 스택 삭제.
92. docker stack ps : 스택 내의 컨테이너 확인.
93. docker secret create : Docker에서 비밀 데이터를 생성.
94. docker secret ls : 비밀 데이터 목록 확인.
95. docker config create : Docker에서 설정 데이터를 생성.
96. docker config ls : 설정 데이터 목록 확인.
기타 명령어
97. docker events : Docker의 실시간 이벤트 스트림 보기.
98. docker login : Docker Hub에 로그인.
99. docker logout : Docker Hub에서 로그아웃.
100. docker wait : 컨테이너가 중지될 때까지 대기.
이 100개의 명령어들은 Docker의 다양한 기능들을 다루고, 컨테이너를 관리하는 데 필요한 모든 필수적인 명령어들이야. 이 명령어들을 익히면 Docker를 능숙하게 다룰 수 있다.
'IT > docker' 카테고리의 다른 글
docker 필수 명령어 10가지 (0) | 2024.10.12 |
---|---|
[TroubleShooting] DPI-1047: Cannot locate a 64-bit Oracle Client library (0) | 2024.04.24 |
Jenkins활용하여 Tomcat에 배포 관련 에러 (feat. docker) (0) | 2024.01.03 |
시스템 기반의 기초 지식 [Dokcer] (0) | 2022.05.10 |