ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Docker] Docker 명령어 알아두면 좋을 것들 정리
    DevOps/Docker 2021. 4. 28. 14:14
    728x90
    반응형

    Docker Container 접속하는 법

    docker exec -t -i container_name /bin/bash (Docker Container 접속)
    ex) Ddocker exec -t -i nginx /bin/bash (Docker Container 접속)

    스크린샷 2021-04-28 오후 2 07 36

    • Docker Cotainer에 접속하고 싶을 때

     

    Docker Compose로 Container 이름 지정하는 법

    version: "3"
    services:
      web:
        image: nginx
        container_name: nginx   
        ports:
          - 81:80
        volumes:
          - /etc/nignx/conf.d/:/etc/nginx/conf.d
    • 위와 같이 container_name을 지정하면 Container가 실행될 때 지정한 이름으로 만들어짐

     

    Docker 명령어로 Container 이름 지어주기

    docker run -it --name "spring" -d -p $IDLE_PORT:$IDLE_PORT leebal
    • 위와 같이 -it --name "이름"을 지정해주면 해당 이름을 가지고 컨테이너가 실행됨

     

    Docker 컨테이너 실행시 환경변수 등록하는 법

    docker run -it --name "spring" -d -e active=real1 -p $IDLE_PORT:$IDLE_PORT leebal
    • 위와 같이 -e 이름=환경변수이름으로 지정하면 dockerfile 에서 꺼내서 사용할 수 있음.

     

    FROM openjdk:11-jre-slim
    
    WORKDIR /root
    
    COPY ./demo-0.0.1-SNAPSHOT.jar .
    
    CMD java -jar -Dspring.profiles.active=${active} demo-0.0.1-SNAPSHOT.jar

    위와 같이 ${이름}을 사용하면 환경변수 꺼낼 수 있음



     

    실행중인 Docker Container ID 가져오기

    docker ps | awk 'NR > 1 {print $1}'       (실행 중인 Docker Container ID 모두)
    docker ps | awk 'NR > 1 {print $1; exit}' (맨 위의 Docker Container ID 하나만)

    스크린샷 2021-04-28 오후 2 11 32

     

    Docker-Compose yml

    version: "3"
    services:
      web:
        image: nginx
        container_name: nginx
        ports:
          - 80:80
        volumes:
          - /etc/nginx/:/etc/nginx/
          - /etc/nginx/conf.d/:/etc/nginx/conf.d
      spring1:
        build: .
        image: spring
        container_name: real1
        ports:
          - 8081:8081
        volumes:
          - ./:/root/
        environment:
          active: real1
      spring2:
        build: .
        image: spring
        container_name: real2
        ports:
          - 8082:8082
        volumes:
          - ./:/root/
        environment:
          active: real2
    • Docker-Compose에서는 위와 같이 이미지 이름을 지정하고 컨테이너 이름을 지정하는구나 예시로 작성해놓았음

     

     

    현재 실행 중인 Docker Container ID

    docker ps -q

     

    현재 실행 중인 Docker Container Names

    docker ps --format "{{.Names}}"

     

     

    Docker Container Name으로 찾기

    docker container ls -f "name=real1" 
    docker container ls -f "name=real1" -q  (해당 컨테이너 이름의 Container ID만 뽑아내기)

     

     

    Docker Nginx Container

    sudo docker exec -it nginx nginx -s reload (이렇게 해도 되긴 하는데... 셸 스크립트에서 하니까 며칠을 삽질한..)
    sudo docker exec -d nginx nginx -s reload (셸 스크립트에서 쓴다면 detach 모드로 쓰는 것을.. 이리 하니까 바로 되었음)

     

     

    Reference

    반응형

    댓글

Designed by Tistory.