인프라/Docker

Docker 명령어 정리

소프 2021. 3. 24.

1. docker run 이미지 : 이미지 다운&실행

docker : 도커 클라이언트 언급

run : 컨테이너 생성 및 실행

이미지 : 컨테이너를 위한 이미지

 

 

2. docker run 이미지 (커스텀 명령어) : 이미지 내부에 있는 시작명령어 무시하고 커스텀 명령어 실행

docker : 도커 클라이언트 언급

run : 컨테이너 생성 및 실행

이미지 : 컨테이너를 위한 이미지

커스텀 명령어 : 원래 이미지가 가지고 있는 시작 명령어를 무시하고 여기에 엤는 커멘드를 실행

ex) ls, ping localhost

※ ls 커멘드는 현재 디렉토리의 파일 리스트 표출

 

 

3. docker ps : 현재 실행중인 컨테이너 나열

ps : process status

 

※ docker images, docker images ls : 현재 이미지 리스트 보기

 

 

4. docker rename {original-name} {changed-name} : 컨테이너 이름 변경

 

 

5. docker ps --format 'table{{.Names}}\ttable{{.Image}}' : docker ps에서 원하는 항목만 보기

Names와 Image말고 다른항목들도 가능

 

 

6. docker ps -a : 모든 컨테이너 나열

 

 

7. docker create <이미지 이름> : 이미지 생성

 

 

8. docker start <컨테이너 아이디/이름> : 컨테이너 실행

  • 컨테이너 아이디 앞에서 7자리만 해도 가능
  • -a를 붙이면 결과의 output 출력

 

9. 도커 중지

  • docker stop  <중지할 컨테이너 아이디/이름> : 그동안 하던 작업들을 완료하고 컨테이너를 중지
  • docker kill <중지할 컨테이너 아이디/이름> : 어떠한 것도 기다리지 않고 바로 컨테이너 중지

 

10. 도커 삭제

  • docker rm <아이디/이름> : 컨테이너 삭제, 중지한 컨테이너만 삭제
  • docker rm `docker ps -a -q` : 모든 컨테이너 삭제
  • docker rmi <이미지 id> : 이미지 삭제
  • docker system prune : 한번에 컨테이너, 이미지, 네트워크 모두 삭제 / 중지된 것만 싹 정리
  • docker rmi $(docker images -q) : 모든 이미지 삭제

 

11. docker exec <컨테이너 아이디> <커스텀 명령어> : 실행중인 컨테이너에 명령어 전달

  • docker exec -it <컨테이너 아이디> redis-cli
    • -it를 붙여줘야 명령어를 실행 한 후 계속 명령어를 적을 수 있다.
    • -i : interactive -t : terminal 
    • -it가 없다면 redis-cli를 키기만 하고 밖으로 다시 나와버린다 => redis-cli에서 명령어를 칠 수 없다.
  • docker exec -it <컨테이너 아이디> sh 
    • 컨테이너 안에 쉘 환경으로 접근
    • Control + D로 터미널 환경 빠져나감 or exec 명령어
  • docker exec -it <컨테이너 이름 or 아이디> bash : 도커 컨테이너 안에 설치한 mysql 터미널에 접속
    • mysql -u root -p : mysql 접속

 

 

12. docker build ./ : 현재 디렉토리에 있는 Dockerfile 빌드

  • DockerFile X -> Dockerfile
  • docker build -t dncjf64/hello:latest ./ : 이미지 네이밍
    • docker build -t {dockerHub 아이디}/{커스텀 이름}:{명시할 버전} ./

 

13. docker login : 도커 로그인

 

14. 스프링 부트 + Docker 

https://spring.io/guides/gs/spring-boot-docker/

  • 이미지 안에 있는 jar파일 실행 관련 방법
  • Spring boot 2.3부터 maven or gradle 플러그인을 이용해서 도커 이미지 만드는 작업 가능

docs.spring.io/spring-boot/docs/2.3.0.RELEASE/reference/htmlsingle/#building-docker-images

 

한글판 자세한 방법은 아래 링크

zgundam.tistory.com/180?category=440149

 

Spring Boot 를 Docker 에 올려보자(feat. Spring Boot 2.3) (1)

Spring Boot를 이용해서 만든 App을 Docker 이미지로 만드는 작업에 대한 글을 쓰도록 하겠다. 사실 이 주제는 검색해보면 관련 글들이 많이 나와 있다. 다만 개인적으로 이번에 이 글을 쓰는 이유는 Sp

zgundam.tistory.com

 

15. docker build -t {도커허브아이디}/{이미지이름} ./ : 도커 빌드시 이미지 이름 정하기(-t 옵션)

 

 

16. docker run -p {로컬포트}:{컨테이너 내부포트} 이미지이름 : 도커 run시 포트 매핑(-p 옵션)

  • 반드시 맵핑을 해줘야지만 컨테이너안으로 들어갈 수 있다.
  • ':'는 숫자랑 반드시 붙여서 작성

 

17. docker run -d ... : 컨테이너 실행후 터미널에서 바로 빠져나옴

  • 컨테이너 아이디만 배출

 

18. docker compose up : 도커 컴포즈 실행, docker-compose.yml 파일이 있는곳에서 해야함, 이미지가 없을때 이미지를 빌드하고 컨테이너 시작

 

19. docker compose up --build : 도커 컴포즈 다시 빌드(소스변경됬을때), 이미지가 있든 없든 이미지를 빌드하고 컨테이너 시작

 

※ docker-compose build --no-cache :  docker-compose 에서 cache 없이 새로 설치하는 명령어

  • 19번의 docker compose up --build 랑 똑같은건가?? 캐시부분 빼고..

 

20. docker compose down : 도커 컴포즈를 통해 작동시킨 컨테이너 한번에 중단(다른 터미널에서..)

 

21. docker compose up -d : 앱을 백그라운드에서 실행, 앱에서 나오는 output 출력 X

 

22. docker build -f Dockerfile.dev ./ : 이미지를 빌드할 때 쓰일 도커파일을 임의로 지정.(-f 옵션)

- Dockerfile.dev는 개발환경전용 도커파일

 

 

23. 리액트에서 도커 실행시 -it를 붙여야 접근가능

docker run -it -p 3000:3000 dncjf64/docker-react-app

 

 

24. docker로 mariadb 설치 & 실행

     docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=사용할 패스워드 --name 컨테이너이름 이미지명

ex) docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=1q2w3e4r1! --name mariadb mariadb

 

 

 

참조

www.inflearn.com/course/%EB%94%B0%EB%9D%BC%ED%95%98%EB%A9%B0-%EB%B0%B0%EC%9A%B0%EB%8A%94-%EB%8F%84%EC%BB%A4-ci/

 

 

댓글