Dockerfile이란?
- Container를 만들 수 있도록 하는 명령어들의 집합
ref: docs.docker.com/engine/reference/builder/
Dockerfile reference
docs.docker.com
Dockerfile 인스트럭션
| 인스트럭션 | 설명 | 형식 |
| FROM | 우분투와 같은 운영체제 이름이나 필요한 애플리케이션 이름을 지정 | FROM ubuntu:14.04 |
| MAINTANER | 이미지를 생성한 사람의 이름 및 정보 | |
| RUN | 컨테이너가 빌드될 때 실행할 명령어 | RUN ["mv", "1234", "5678"] |
| EXPOSE | 컨테이너 외부에 노출할 포트 지정 | EXPOSE 8080 |
| ENV | 환경변수 이름지정 | ENV abc tmp echo ${abc} |
| CMD | 컨테이너가 시작될 때 실행할 명령어 | CMD ["echo", "1234"] CMD ["node", "/hello.js"] |
| ENTRYPOINT | 컨테이너가 실행될 때 기본 명령어 지정 (CMD 와 달리 옵션을 넘길 수 있음) |
ENTRYPOINT ["python"] ... $ sudo docker run t 이미지 -c "print('1234')" |
| WORKDIR | 작업할 디렉토리를 세팅 | WORKDIR /project |
| USER | 도커 실행 시 사용할 유저 이름 또는 uid 를 지정 설정하지 않으면 기본 root으로 실행 |
USER user 또는 USER user:group |
| VOLUME | 호스트의 디렉토리를 도커에 연결 커밋 없이 사용 가능하며 주로 로그 수집이나 데이터 저장용도로 사용 |
VOLUME [/"tmp"] |
| COPY | 컨테이너 빌드시 호스트의 파일이나 디렉토리를 복사할때 사용 | COPY file /copy/to/path |
| ADD | 컨터이너 빌드시 호스트의 파일(tar,url포함)을 컨테이너로 복사할때 사용 | ADD http://example.com/big.tar.xz /usr/src/things/ ADD rootfs.tar.gz / |
| ARG | ||
| SHELL | 원하는 타입의 쉘을 사용 | SHELL ["/ sh ", c"] SHELL [" cmd ", "/S", "/] |
| # | comment |
nginx image생성 및 dockerhub push test


- # docker build -t fastwon1/docker-test .
- Docker이미지 빌드
- # docker push fastwon1/docker-test
- image이름을 [계정/image이름] 형식으로 변경이 필요한경우
- # docker tag docker-test fastwon1/docker-test
- Private repository에 push
- 이미지의 namespace와 자신의 아이디가 일치해야한다
- # docker tag foo/sample_image:latest username/sample_image:latest
- namespace가 일치하지 않는다며 태그명 변경으로 해결할 수 있다
- # docker tag foo/sample_image:latest username/sample_image:latest
- 에러시 https://hub.docker.com의 id/pass로 docker login이 필요
- image이름을 [계정/image이름] 형식으로 변경이 필요한경우
Docker history 확인

- # docker history nginx
- Docker이미지를 생성하면서 발생한 명령어들을 확인할 수 있다
Dockerfile 작성 및 apache2 container 생성 테스트
FROM ubuntu:18.04
LABEL maintainer="jaehwan.jaon <fastwon1@gamil.com>"
RUN apt-get update \
&& apt-get install -y apache2 \
&& apt-get install -y --no-install-recommends apt-utils
RUN echo "apache2 start test" > /var/www/html/index.html
EXPOSE 80
CMD ["/usr/sbin/apache2ctl","-DFOREGROUND"]

# docker build -t fastwon1/apathc2-test:v1 .


기타
| 명령어 | 설명 |
| sudo docker container prune | 중지 된 모든 컨테이너를 제거 |
| sudo docker image prune | 태그가 없는 모든 이미지 파기 |
| sudo docker system prune | 사용하지 않는 모든 데이터 삭제 이미지 , 컨테이너 , 볼륨 , 네트워크등 |
| sudo docker container stats | 컨테이너 사용 현황 출력 |
'클라우드 > Docker' 카테고리의 다른 글
| Docker resource 관리 (0) | 2021.08.14 |
|---|---|
| Docker registry (0) | 2021.08.11 |
| Docker 명령어 테스트 (0) | 2021.08.11 |
| Docker? (0) | 2020.12.27 |
| Docker 설치 (0) | 2020.12.27 |