Docker

Docker 명령어

Dexlee 2021. 11. 5. 11:34

1. docker pull

  • docker hub에서 이미지 다운로드

2. docker run [option] [image] [command]

  • image를 container로 실행 (컨테이너를 만들어서 실행한다.)
  • 만약에 컨테이가 안 떠있으면 런을 주고, 떠있으면 exec를 준다.
  • run은 컨테이너를 만들어서 실행.

3. docker logs [image]

  • 로그 확인
  • docker logs -f [image]
    • 로그 계속 확인

4. docker system df

  • 도커 시스템 디스크 사용량을 나타낸다.

5. docker image ls

  • 도커 이미지 어떤것들이 떠있는지 나타내 줌.

6. docker pull nginx

  • docker hub에서 이미지를 다운로드할 수 있다.
  • 여기서 official image라고 적혀있는 것은 실제 nginx에서 만들었다는 의미. 공식적이란 의미.

7. docker container run —name server(container name) -d -p 80:3306 nginx

  • 이 명령어의 의미는 nginx라는 이미지를 기반으로 server 이름을 가진 컨테이너를 실행시킨 거다.
  • 80은 host port, 3306은 container port이다. 외부에서 80번 포트로 접근하고 container 안의 app에 3306 포트로 접근한다는 의미.
  • -d
    • 백그라운드 명령어. 즉, 뒤에서 계속 돌고 있다는 의미. 한번 쭉 실행했을 때, 서버가 끝나지 않고 계속 돌면서 api 처리를 해주려는 상태를 의미.
    • 만약에 -d 명령어가 없으면 서버가 바로 죽음
  • port 번호
    • 1000 넘어야한다. 1000 아래는 시스템이 사용하고 있는 포트

8. docker ps -a

9. docker rm [options] container [container…]

  • docker rm -f
  • -f는 강제 종료이다.

10. docker image rm nginx

  • remove image

11. docker search [image name]

  • docker hub에 있는 이미지를 검색해줌.

12. docker container run -it —name [container name] ubuntu /bin/bash

  • -it
    • -i
      • keep STDIN open even if not attached
      • 입출력 설정
    • -t
      • allocate a pseudo-tty
      • tty를 활성화하여 배시(bash) 셀을 사용하도록 컨테이너 설정
    • 둘 다 사용해야 정상적으로 셀 사용 가능
    • 둘 다 사용해야 to allocate a tty for the container process

13. docker container run -it --name "test 1" centos(image) /bin/cal(command)

  • “test 1”
    • 따옴표를 사용하는 이유는 공백을 포함하고 싶을 때 사용한다.

14. docker (container) run -it —restart=always --name “cantsh” centos(image) /bin/bash(command)

  • —restart=always
    • 런 할 때마다 이미지 기반으로 컨테이너를 매번 재시작

15. attach vs detach

  • ctrl + p or q 하면 컨테이너에서 떨어져 나온다.
  • 다시 attach 하고 싶다면
    • docker attach [container name]
    • 켜져 있는 컨테이너에 접속

16. docker start

17. docker stop or exit(kill)

18. docker (container) [command]

  • 여기서 container는 생략 가능

19. docker (container) exec -it [containerId] [command]

  • docker exec -it baedabfb /bin/bash

20. docker port [container name]

21. docker cp —help

  • docker cp [container-name]:[path or container-file] [client-path]
  • docker cp [client-file] [container-name]:[path]

22. share directory

  • 같이 사용해야 하는 데이터는 연결해두어야 편하다.
  • docker run -v [local-path]:[container-path]
    • -v 명령어가 local path와 container path를 연결하는 옵션이다.

23. docker stop `docker ps -q`

  • 여기서 `` 의미는 실행하라는 의미. 쌍 따옴표와 다르다.
  • docker ps -q
    • 실행하고 있는 컨테이너 해쉬값을 모두 가져옴

24. docker tag [image]:[tag] [image]:[tag]

  • 원래 있던 image를 이름만 다르고 내용은 같은 image를 만들어준다. 즉 같은 내용의 이미지가 2개가 됨.

25. docker push [image]:[tag]

  • docker hub에 저장시킴.

26. docker scan [image]

  • 취약점 분석해줌. (vulnerabilities)

27. docker run -d -p [host port]:[image port] —name [container name] [image]:[tag]

  • docker run -d -p 80:80 —name web webserver:v1
  • tag latest 아니라면 생략해선 안된다.

 

references

 

1. docker cheat sheet

https://www.docker.com/sites/default/files/d8/2019-09/docker-cheat-sheet.pdf

 

5. docker hub

https://hub.docker.com/

 

6. docker rm

https://docs.docker.com/engine/reference/commandline/rm/

 

7. docker run

https://docs.docker.com/engine/reference/run/