도커/ docker command / docker commands / 명령어 / 도커 명령어 / 도커 사용
docker commands
sudo docker pull
: docker hub 에 이미 build 된(pre-built) 이미지들을 가져올 수 있다.sudo docker pull centos:centos7
: repository centos, tag name centos7 이 된다.- docker pull | Docker Documentation
sudo docker version
: version 확인sudo docker image ls
: 설치된 docker image 들을 보여준다.sudo docker ps --all
: container 를 전부 보여준다. 현재 실행중인 녀석만 보려면-all
option 을 빼면 된다.sudo docker build --tag name:tag <dir> -f <Dockerfile name>
- 예:
docker build . -f Dockerfile.mine
- 예:
sudo docker build --tag name:tag <dir>
: image 를 만들어준다. Dockerfile 이 있는<dir>
을 지정해주면, image 를 만들기 시작한다. docker build | Docker Documentationsudo docker rm --force <name>
: container 삭제sudo docker rmi <Image_ID>
: image 삭제sudo docker network ls
sudo docker network inspect <network-name>
sudo docker network prune
: 사용하지 않는 docker network 를 지워준다.sudo docker network rm <network_id
>: 특정 docker network 를 지워준다.sudo docker port <container-name>
: container 에 열려있는 port 를 확인할 수 있다. 어떻게 mapping 되어 있는지도 알 수 있다.
docker run
sudo docker run hello-world
: hello-world image 를 실행, image 가 없으면 자동으로 download 하고, 실행한다.sudo docker run --publish 8000:8080 --detach --name <container_name> <image_name>:<image_tag>
--publish 8000:8080
: host 의 8000 으로 들어오는 traffic 을 container 의 8080 으로 forwarding 해줘라--detach
: container 를 background 로 실행--name
: container 에 이름을 지정해 준다.docker ps
하면 보인다.
sudo docker run --rm
: container를 실행하고 나서 삭제한다.sudo docker run -it <Image_ID> sh
: image 내부를 볼 수 있다. 실행하면 container 를 생성해서 띄우게 된다. image 를 container 에서 띄우고, 그 안에서 sh 를 실행한 느낌이라고 보면 된다.sudo docker run --name <container_name> -it <repository:tag> sh
: repository tag 명으로 실행할 수 있다. 꼭 tag 까지 써줘야 한다.
sudo docker exec -it my_container sh
: 이미 실행되고 있는 container 에서 command 실행한다.docker run
으로 실행하면 container 를 새롭게 생성한다.sudo docker stop <container_id>
: 실행되고 있는 container 를 멈춘다.sudo docker start <container_name>
: stop 된 container 를 실행시킨다. 참고로docker exec
는 running container 에서만 실행된다.sudo docker restart <container_name>
: container 를 restart 시킨다.
간단하게 docker image 에서 bash 실행
mkdir rpm_dir
docker pull centos:centos8
docker run -d --rm -it --name centos --entrypoint bash -v rpm_dir:/var/rpm_dir centos:centos8
docker exec -it centos /bin/bash
# 또는 detach 를 하지 않고 아래처럼 바로 접속해도 된다.
docker run --rm -it --name centos --entrypoint bash -v rpm_dir:/var/rpm_dir centos:centos8
docker inspect
- How to get ENV variable when doing Docker Inspect - Stack Overflow
- docker inspect | Docker Documentation
sudo docker inspect -f "{{ .Config.Env }}" my-repo:1.0.0
: imagemy-repo:1.0.0
의 설정된 환경변수 들을 보여준다.sudo docker network inspect -f "{{json .Containers}}" <network_id>
: container 의 네트워크 정보를 알수 있다. ip address, mac address 등- How to Get A Docker Container IP Address - Explained with Examples : docker network 에 대한 설명
sudo docker inspect --format="{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}" <container_id>
docker swarm
- docker stack cli : docker stack 관련 command 를 확인할 수 있다.
stack 이름을 mystack1
이라고 했다.
docker swarm init
: docker swarm 을 시작한다.docker stack deploy -c docker-compose.yml mystack1
: docker-compose.yml 을 보고 network 랑 container를 만든다.docker stack ls
: stack 들을 볼 수 있다.docker stack ps mystack1
: 현재 stack 내의 container 들을 보여준다.docker stack rm mystack1
: mystack1 을 내린다. 돌고있던 container 들을 모두 멈추고 삭제한다.docker stack servcies mystack1
: mystack1 의 service 들을 보여준다.
댓글 없음:
댓글 쓰기