도커 정리 (Dockerfile, docker-compose, DockerHub 등)

0koang·2024년 1월 9일
0

DevOps

목록 보기
2/3





이미지 조회

  • docker images





컨테이너 조회

  • docker ps





컨테이너 쉘 접속

  • docker exec -it -u 0 컨테이너ID sh
    • -it: 대화형(interactive) 모드 및 유사 tty를 사용
    • -u 0: 사용자 ID를 0으로 설정하여 루트 사용자로 실행
    • 컨테이너ID: 도커 컨테이너의 이름 또는 ID로 변경
    • sh: 접속할 쉘을 지정. sh이나 bash를 사용할 수 있음





Dockerfile

Docker 컨테이너 이미지를 빌드하기 위한 지침을 담은 텍스트 파일
Docker 엔진에게 어떻게 이미지를 구성하고 빌드해야 하는지를 알려줌
각각의 명령어는 Docker 이미지를 구성하는 과정을 단계별로 정의

  • 빌드
    • docker build .





docker-compose.yml

여러 개의 도커 컨테이너를 정의하고 실행하기 위한 도구
여러 서비스를 조합하여 애플리케이션을 구축하고 실행하는 데 사용

  • 실행

    • docker-compose up -d
  • 예시

    version: '3.8'
    
    services:
      mongo:  # MongoDB 서비스 정의
        image: mongo:latest  # MongoDB 도커 이미지
        container_name: my_mongo  # 컨테이너 이름
        ports:
          - "27017:27017"  # 호스트 포트와 컨테이너 포트 매핑
        environment:
          MONGO_INITDB_ROOT_USERNAME: admin  # MongoDB root 사용자 이름 설정
          MONGO_INITDB_ROOT_PASSWORD: secret123  # MongoDB root 비밀번호 설정
          MONGO_INITDB_DATABASE: my_database  # 초기 데이터베이스 설정
        volumes:
          - mongo_data:/data/db  # 호스트와 컨테이너 간의 데이터 볼륨 공유
        restart: unless-stopped  # 종료 상태가 아닌 경우에만 재시작
    
      mongo-express:  # MongoDB Express 서비스 정의
        image: mongo-express:latest  # MongoDB Express 도커 이미지
        container_name: my_mongo_express  # 컨테이너 이름
        ports:
          - "8081:8081"  # 호스트 포트와 컨테이너 포트 매핑
        environment:
          ME_CONFIG_MONGODB_SERVER: mongo  # MongoDB 서버 호스트 설정
          ME_CONFIG_MONGODB_PORT: 27017  # MongoDB 서버 포트 설정
          ME_CONFIG_MONGODB_ADMINUSERNAME: admin  # MongoDB root 사용자 이름 설정
          ME_CONFIG_MONGODB_ADMINPASSWORD: secret123  # MongoDB root 비밀번호 설정
        restart: unless-stopped  # 종료 상태가 아닌 경우에만 재시작
    
    # 네트워크 설정
    networks:
      my_network:
        driver: bridge
    
    # 볼륨 설정
    volumes:
      mongo_data:
        driver: local





DockerHub

  • 로그인
    • docker login -u 유저ID
  • 이미지 커밋 & 푸시
    • docker commit 컨테이너ID 유저ID/새이미지명:태그
    • docker push 유저ID/이미지명:태그





참조

https://docs.docker.com/engine/reference/builder
https://docs.docker.com/compose/gettingstarted
https://github.com/docker/awesome-compose/tree/master

profile
서비스 핵심 가치를 이해하고, 지속적인 개선을 이끄는 엔지니어(를 지향함)

0개의 댓글