Docker 명령어
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
- -i
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
6. docker rm
https://docs.docker.com/engine/reference/commandline/rm/
7. docker run
https://docs.docker.com/engine/reference/run/