Docker 이미지 및 컨테이너, 볼륨 실행 명령어

2023. 2. 6. 16:41Docker

728x90

1. Image

- 이미지 생성 (빌드)

docker build . 
// 이미지 빌드 태그
docker build -t 이름:태그 .

- 이미지 목록

docker images

- 이미지 제거

docker rmi 이미지
// 미사용 이미지 제거
docker image prune

- 이미지 실행

// 기본
docker run 이미지
// 포트 설정
docker run -p 내pc포트:expose포트 이미지
// detach 모드  (docker start 일 경우 default) 
docker run -p 내pc포트:expose포트 -d 이미지
// attach 모드 (docker run 일 경우 default) 
docker run -p 내pc포트:expose포트 -a 이미지
// 인터렉티브 모드 (-it)
docker run -it 이미지
// 종료시 자동 컨테이너 제거 (--rm)
docker run -p 내pc포트:expose포트 -rm 이미지 
// 태그 (--name)
docker run -p 내pc포트:expose포트 -rm --name 이름 이미지
// 볼륨 (-v 이름:경로)
ocker run -d -p 3000:80 --rm --name feedback-app -v feedback:/app/feedback -v $(pwd):/app -v /app/node_modules feedback-node:volumes

- 이미지 정보 확인

docker image inspect 이미지

- 도커 허브에 push/pull

docker push 이미지
docker pull 이미지

2. Container

- 컨테이너 확인

// 실행중인 컨테이너 확인
docker ps
// 모든 컨테이너 확인
docker ps -a

- 컨테이너 실행

docker start 컨테이너 
// 인터렉티브 모드
docker start -a -t 컨테이너

- 컨테이너 제거

docker rm 컨테이너

- 컨테이너 종료

docker stop 컨테이너

- 컨테이너 파일 복사

docker cp 복사할파일경로 목적컨테이너:/경로
// 예시: dummy에 있는 모든 파일을 practical_jennings 컨테이너의 /test 폴더로 복사
docker cp dummy/. practical_jennings:/test

- 컨테이너 상세

docker inspect 컨테이너

3. 볼륨

익명볼륨
- 시간 절약 가능
- 컨테이너에 존재하는 특정 데이터 잠금
- 다른 모듈에 의해 덮어쓰여지는 것 방지
- 도커가 read-write 레이어 내부 모든 데이터 관리 할 필요 없음
-> 성능, 효율 도움

명명된 볼륨
- Dockerfile에서 생성 불가
- 이름이 지정됨
- 컨테이너가 종료 및 제거되어도 유지
- 컨테이너간 데이터 공유 가능

바인드 마운트
- 하나의 특정 컨테이너에 국한되지 않음
- 컨테이너 종료 및 제거 후에도 유지됨
- 데이터 삭제를 하려면 호스트 머신에서 삭제
- 컨테이너간 공유 가능

 

- 볼륨 생성

docker volume create 볼륨

- 볼륨 검색

docker volume ls

- 볼륨 제거

docker volume rm VOL_NAME
docker volume prune

- 볼륨 상세

docker volume inspect 볼륨

4. 환경변수

- dockerfile에서 생성 (ENV)

ENV PORT 80

EXPOSE $PORT

- 컨테이너 실행시 생성

// --env
docker run -d -p 3000:8000 --env PORT=8000 --rm --name feedback-app -v feedback:/app/feedback -v "D:\WorkSpace\Docker\DockerAndCubernetes_udemy\section_3\data-volumes-01-starting-setup:/app:ro" -v /app/temp -v /app/node_modules feedback-node:env
// --env-file (파일 선택)
docker run -d -p 3000:8000 --env-file 상대파일경로 --rm --name feedback-app -v feedback:/app/feedback -v "D:\WorkSpace\Docker\DockerAndCubernetes_udemy\section_3\data-volumes-01-starting-setup:/app:ro" -v /app/temp -v /app/node_modules feedback-node:env

'Docker' 카테고리의 다른 글

Docker nodemon window10_home( wsl2 )  (0) 2023.02.10
Dockerfile 지시어 종류  (0) 2023.02.06
Docker desktop 설치_window  (0) 2023.02.06