[컴] docker commands

도커/ docker command / docker commands / 명령어 / 도커 명령어 / 도커 사용

docker commands

  • sudo docker pull : docker hub 에 이미 build 된(pre-built) 이미지들을 가져올 수 있다.
  • 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 Documentation
  • sudo 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


  • sudo docker inspect -f "{{ .Config.Env }}" my-repo:1.0.0 : image my-repo:1.0.0 의 설정된 환경변수 들을 보여준다.
  • sudo docker network inspect -f "{{json .Containers}}" <network_id> : container 의 네트워크 정보를 알수 있다. ip address, mac address 등
  • sudo docker inspect --format="{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}" <container_id>

docker swarm

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 들을 보여준다.

See Also

  1. 쿠…sal: [컴] Ubuntu 14.04 에 docker 설치하기
  2. 쿠…sal: [컴][유틸] kali linux 에서 Docker 설치 및 사용
  3. 쿠…sal: [컴] 테스트용 docker network
  4. lazydocker
    1. define own custom command
  5. awesome-docker/README.md at master · veggiemonk/awesome-docker · GitHub 

댓글 없음:

댓글 쓰기