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
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
참조
'인프라 > Docker' 카테고리의 다른 글
Docker를 이용한 SpringBoot, Mysql 백엔드 개발 서버 구축(with centos 7.8) (0) | 2022.10.21 |
---|