EXPOSE

이진영·2022년 10월 10일
0

Docker

목록 보기
5/10
post-thumbnail

생성일: 2022년 2월 13일 오후 5:26
태그: Dockerfile

EXPOSE

  • docker 컨테이너의 특정 포트를 외부에 오픈하는 설정
    • docker run -p옵션으로도 가능은하다!
      • 반면 이 옵션은 컨테이너의 특정 포트를 외부에 오픈하고, 해당 포트를 호스트 PC의 특정 포트와 매핑시킴
    • EXPOSE는 컨테이너 생성시 , 특정 포트를 외부에 오픈하는 것만 설정하는 것임

즉 독립적으로 실행시는 EXPOSE 옵션을 넣는다고 해서 호스트 PC에서 해당 컨테이너에 포트번호로 접속할 수 있는 것은 아님

실습

  1. 기존 docker-apache 편집기에

    EXPOSE 80
  2. inspect를 통해서 해당 포트가 있는 것을 알 수 있다.

  3. 기존과 다른 run

    docker run -P -d myweb4

    P를 사용하면 랜덤포트가 할당되고 있는 것을 볼 수 있다.

ENV

  • 컨테이너 내의 환경 변수 설정

실습!


  1. vi Dockerfile-mysql를 명령프롬프트에 친다음

    FROM mysql:5.7
    
    # mysql 슈퍼관리자인 root ID에 대한 password란에 원하는 패스워드 설정
    ENV MYSQL_ROOT_PASSWORD=12345678
    # dbname란에 원하는 데이터 베이스 이름 설정
    ENV MYSQL_DATABASE=funcoding
  2. build

    docker build --tag mysqldb -f Dockerfile-mysql .
  3. run

    docker run -d --name mydb mysqldb
  4. exec —>백그라운드로 실행켰기 때문에 exec함수를 통해 들어가자

    docker run -d --name mydb mysqldb


결과

  • 비밀번호도 일치하고 데이터 베이스도 잘 만들어 진것을 확인할 수 있다.

WORKDIR

  • RUN /CMD / ENTRYPOINT 명령이 실행될 디렉토리 설정

실습


  1. vi Dockerfile-workdir 로 들어간 다음!

    FROM httpd:alpine
    
    WOKDIR /usr/local/apache2/htdocs
    
    CMD /bin/cat index.html
  2. build

    docker build --tag mywork -f Dockerfile-workdir .
  3. run

    docker run -d --name mytest mywork

  4. 그렇다면 바로 종료가 된 것을 볼 수 있다.

    • 이 명령을 수행하는 컨테이기 때문에 바로 종료가 된다.

정상적인 모습은!!

docker logs mytest 를 통해서 html코드가 나오는 것을 볼 수 있다.

profile
내가 공부한 것들을 적는 공간

0개의 댓글