Docker 공통 명령 알아야 할 사항
Docker 공통 명령 알아야 할 사항
Docker CLI 치트시트
도커 빌드
docker build [options] . -t "app/container_name" # name --build-arg APP_HOME=$APP_HOME # Set build-time variables
Create an
image
from a Dockerfile.도커 실행
docker run [options] IMAGE # see `docker create` for options
예시
$ docker run -it debian:buster /bin/bash
Run a command in an
image
.컨테이너 관리
1 . 도커 만들기
docker create [options] IMAGE -a, --attach # attach stdout/err -i, --interactive # attach stdin (interactive) -t, --tty # pseudo-tty --name NAME # name your image -p, --publish 5000:5000 # port map (host:container) --expose 5432 # expose a port to linked containers -P, --publish-all # publish all ports --link container:alias # linking -v, --volume `pwd`:/app # mount (absolute paths needed) -e, --env NAME=hello # env vars
예시
$ docker create --name app_redis_1 \ --expose 6379 \ redis:3.0.2
Create a
container
from animage
.2. 도커 실행
docker exec [options] CONTAINER COMMAND -d, --detach # run in background -i, --interactive # stdin -t, --tty # interactive
예시
$ docker exec app_web_1 tail logs/development.log $ docker exec -t -i app_web_1 rails c
Run commands in a
container
.3. 도커 시작
docker start [options] CONTAINER -a, --attach # attach stdout/err -i, --interactive # attach stdin docker stop [options] CONTAINER
Start/stop a
container
.4 . 도커 ps
$ docker ps $ docker ps -a $ docker kill $ID
Manage
container
s using ps/kill.5. 도커 로그
$ docker logs $ID $ docker logs $ID 2>&1 | less $ docker logs -f $ID # Follow log output
See what’s being logged in an
container
.이미지 관리
1. 도커 이미지
$ docker images REPOSITORY TAG ID ubuntu 12.10 b750fe78269d me/myapp latest 7b2431a8d968 $ docker images -a # also show intermediate
Manages
image
s.2. 도커 rmi
docker rmi b750fe78269d
Deletes
image
s.관리 정리
1. 모두 청소
docker system prune
Cleans up dangling images, containers, volumes, and networks (ie, not associated with a container)
docker system prune -a
Additionally remove any stopped containers and all unused images (not just dangling images)
2. 컨테이너
# Stop all running containers docker stop $(docker ps -a -q) # Delete stopped containers docker container prune
3.Images
docker image prune [-a]
Delete all the images
4. 볼륨
docker volume prune
Delete all the volumes
.
.
docker-compose 치트시트
일반적인 명령
# Starts existing containers for a service. docker-compose start # Stops running containers without removing them. docker-compose stop # Pauses running containers of a service. docker-compose pause # Unpauses paused containers of a service. docker-compose unpause # Lists containers. docker-compose ps # Builds, (re)creates, starts, and attaches to containers for a service. docker-compose up # Stops containers and removes containers, networks, volumes, and images created by up. docker-compose down
팁과 요령
#!/bin/sh
docker-compose down &&
docker-compose rm &&
docker-compose build &&
docker-compose up -d
sleep 1
docker rmi $(docker images -f "dangling=true" -q)
echo y | docker volume prune
printf "\n... HAPPY CODING ...\n\e[0m"
사용하지 않는 용기 제거
Docker containers have a
status
field indicating where they are at in their lifecycle. According to the docs,status
can be one ofcreated
,restarting
,running
,removing
,paused
,exited
, ordead
.First, we need to get the IDs of the containers with status
exited
ordead
as follows:docker ps --filter status=exited --filter status=dead -q
Then, we can reuse the above command to delete these containers with the following command:
docker rm $(docker ps --filter=status=exited --filter=status=dead -q)
A one-liner alternative to remove all stopped containers is:
docker container prune
모든 컨테이너 제거
First, we need to stop all running containers. We can get the IDs of the running containers as follows:
docker ps -q
Then, we can stop all the containers with:
docker stop $(docker ps -q)
You can replace
docker stop
withdocker kill
in the above command to forcibly stop the containers.Finally, we can delete all containers:
docker rm $(docker ps -a -q)
매달린 이미지 제거
Dangling images, as mentioned by the documentation, are final images (i.e, not intermediary build layers) that no longer have an associated tag with them.
We can get the image ID for such images as follows:
docker images --filter dangling=true -q
Then, we can delete those images with the following command:
docker rmi $(docker images --filter dangling=true -q)
A one-liner alternative to remove all dangling images is:
docker image prune
모든 이미지 제거
Docker doesn’t allow to remove images that have an associated container, so to really delete all images, it is necessary first to remove all containers.
Similarly to the previous section, we need the IDs of all the images, which we can get using:
docker images -a -q
Then, we can combine it with
docker rmi
:docker rmi $(docker images -a -q)
A one-liner alternative to remove all images is:
docker image prune -a
볼륨 제거
Volumes also take space in the host machine. They are never deleted automatically since they may contain data that can be reused by different containers or directly from the host.
Then, to remove all docker volumes use:
docker volume prune
네트워크 제거
Although docker networks don’t consume too much disk space, they create
iptables
rules, network devices and routing table entries. To prune these objects, you can run:docker network prune
모든 것을 제거
Instead of manually pruning different types of resources, you may be interested on wiping out everything from your local cache. For that we can leverage the
docker system prune
command as follows:To remove containers, images and networks use:
docker system prune
To remove containers, images, networks and volumes, use
docker system prune --volumes
Reference
이 문제에 관하여(Docker 공통 명령 알아야 할 사항), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/kidubo/docker-common-command-you-need-to-know-1nl7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)