Dockerfile syntax
- FROM: 베이스 이미지 선정
- WORKDIR: work directory 선정
- COPY: 복사할 파일 선정(예: 작업한 서비스 파일들)
- RUN: 실행할 명령어
- ENTRYPOINT: 컨테이너가 시작할 때 실행할 명령어(예: 서버 실행)
Docker Hub에 이미지를 등록하려면, 아래와 같은 규칙을 준수해야 한다.
docker push [OPTIONS] [Docker Hub 사용자명]/이미지명:[태그명]
태그를 설정하는 방법
build
시: docker build -t my-httpd .
build
후: docker image tag [image name]
간단한 실습
도커 이미지를 빌드 할 때, .
은 현재 위치를 기준으로 Dockerfile
을 찾는다는 뜻이기 때문에, 현재 경로에 Dockerfile이 없다면 다음과 같이 오류가 뜬다.
경로를 제대로 입력하고, 태그와 함께 이미지를 빌드하자
성공적으로 이미지가 생성된 걸 확인할 수 있다.
네트워크 드라이버
docker network ls
를 통해 네트워크 드라이버를 확인할 수 있다.
처음에 명령어를 입력하면, 기본적으로 존재하는 드라이버를 확인할 수 있고, 이는 핵심 네트워킹 기능을 제공한다.
- bridge: 기본 네트워크 드라이버, 동일한 도커 호스트에서 컨테이너 간의 통신을 도와줌
- host: 호스트의 네트워크를 직접 사용
- overlay: 서로 다른 도커 호스트의 컨테이너 간 통신을 도와줌
brige네트워크 들여다보기
docker network inspect bridge
위 명령어를 통해서 네트워크에 연결된 컨테이너들을 확인할 수 있다.
현재는 다음과 같이 bridge네트워크의 컨테이너가 비어있지만,
이미지를 실행을 하면, bridge네트워크에 컨테이너가 추가된걸 확인 할 수 있다.
만약 여러개의 컨테이너가 떠있다면, bridge라는 네트워크안에 여러개의 컨테이너가 떠 있을 것이다.
네트워크 생성하기 및 이용하기
docker network create -d bridge my-bridge-network
네트워크가 생성된 걸 확인할 수 있다!
생성한 my-bride-network에 my-httpd를 넣고싶다면
--net [네트워크이름]
옵션을 추가하면서 이미지를 실행하면 된다.
docker run --net my-bridge-network my-httpd
문제 없이 my-brige-network에 추가됐다.