Docker 명령 정리
- image
- 빌드 명령 : docker build —platform=linux/amd64 -t tag_name
- 이미지 확인 : docker images
- 이미지 삭제 : docker rmi 또는 docker image rm
- Docker Hub
- 로그인 : docker login -u userID -p PW
- Pull : docker pull accountID/image_name
- Push : docker push accountID/image_name
- Container
- 생성 : docker create
- 이미지 실행 : docker run —name -p -v image_name
- 프로세스 확인 : docker ps
- 컨테이너 실행 : docker start container_id
- 컨테이너 정지 : docker kill
- 컨테이너 삭제 : docker rm
- 로그 확인 : docker logs -f container_id (—tail 옵션사용가능)
- 이미 실행된 컨테이너에게 명령 수행 : docker exec container_id <명령어>
- 백그라운드에서 수행 : docker run -d image_name
Docker Volume
: Docker Container가 실행되었다가 중단되면 데이터가 사라진다. → 데이터의 유지를 원한다면 Volume이 필요하다.
정의
- 호스트 파일 시스템 폴더를 Docker Container 파일 시스템의 폴더로 마운트하는 것
- Container가 사라져도 데이터를 남게한다.
- 마운트 : 물리적 장치를 파일 시스템의 특정 폴더에 연결하는 것
Docker Volume 타입
: docker run -v를 실행할 때 지정된다.
- Host Volumns : 페어로 지정
- docker run -v host_file_sys_path:container_file_sys_path
- Anonymous Volumes : 컨테이너 패스만 지정
- dockr run -v path
- Dockerfile에서 사용되는 방식, 호스트에 액세스되지는 않으나 재시작 시 유지
- Named Volumes : docker run -v : 이름과 컨테이너 패스를 지정
- docker run -v name:path
- 가장 선호되는 방식, 하나의 Volume을 다수의 컨테이너에서 공유 가능
- docker-compose에서도 사용된다.
- Readonly로 지정 : name:path:ro
Dockerfile에서 volume 사용 예
- nginx 데모#1 (저장 안됨)
- docker run -d —name=nginx -p 8081:80 nginx (8081포트로 열기)
- container 접속 : docker exec —user=root -it nginx sh
- nano 설치 (apt)
- nano /usr/share/nginx/html/index.html 내용 편집
- docker 재시작 (docker restart nginx)
- nginx 데모#2 (Volume 사용)
- 맵핑을 위한 폴더와 파일 생성 (index.html)
- Dockerfile로 이미지 빌딩
FROM nginx:latest RUN echo "<h1>test volume</h1>" > /user/share/nginx/html/index.html
- 폴더 마운트
- docker run -p 8081:80 —name nginx -v local_path:/usr/share/nginx/html nginx
- docker-compose.yml (airflow의 내용으로 사용)
volumes: - ${AIRFLOW_PROJ_DIR:-.}/dags:/opt/airflow/dags
Docker Volume 명령들
- Volume 확인 : docker volume ls
- 삭제 : docker volume rm
- 사용되지 않는 모든 볼륨 삭제 : docker volume prune
- 특정 볼륨의 내용을 깊게 살펴보고 싶은 경우 : docker volume inspect
'Infra & Container > Docker' 카테고리의 다른 글
Docker - 간단한 docker compose 만들어보기(zoomcamp) (0) | 2024.03.21 |
---|---|
Docker - Docker compose (0) | 2024.03.21 |
Docker - Postgres > Data Ingestion (0) | 2024.03.21 |
Docker - Postgres > pgadmin (0) | 2024.03.20 |
Docker - Postgres (0) | 2024.03.20 |