1. 설치
Docker Hub 사이트에서 Docker Desktop for Mac 받아서 설치한다.
만약 Docker Hub 사이트 계정이 없다면 계정부터 만들어야 한다. 이메일 인증까지 받아야 해서 사실 조금 귀찮다.
아무튼 로그인이 되면 Docker.dmg 파일을 다운로드하게 된다. 다운받고 설치하는 양이 꽤 크다.
지루한 과정이 모두 끝나면 CLI에서 docker 명령어를 사용할 수 있게 된다.
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2. Docker 이미지 만들기
간단히 Docker 이미지를 만들고 실행하는 예제를 진행한다. 우선 Spring Boot로 개발된 jar 파일을 실행하는 Docker 이미지를 만들 것이다.
현재 작업 디렉토리에는,
- Dockerfile 파일
- target 디렉토리
가 있고, target 디렉토리 안에 MyApp.jar가 있다고 가정한다.
2.1. Dockerfile
FROM openjdk:8-jre-alpine COPY target/MyApp.jar app.jar CMD ["java","-jar","/app.jar"]
2.2. 이미지 생성 커맨드
$ docker build -t myapp . Sending build context to Docker daemon 18.33MB Step 1/3 : FROM openjdk:8-jre-alpine ---> f7a292bbb70c Step 2/3 : COPY target/MyApp.jar app.jar ---> 69641f92ce02 Step 3/3 : CMD ["java","-jar","/app.jar"] ---> Running in e4a513f43578 Removing intermediate container e4a513f43578 ---> 793582135081 Successfully built 793582135081 Successfully tagged myapp:latest
3. Docker 이미지 실행
아래 8180:8180은 소스 포트, 타겟 포트가 모두 8180이라는 뜻이다. 만약 소스가 8080, 타겟이 8180이면 8180:8080이라고 설정한다.
$ docker run -d -p 8180:8180 myapp ac4ebc1a070ad0e78e85c37b90098c2debad61e5266c3762394fa22a7a033714
docker ps
로 확인한다.
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES ac4ebc1a070a myapp "java -jar /app.jar" 8 seconds ago Up 7 seconds 0.0.0.0:8180->8180/tcp naughty_lichterman
잘 실행되었다. 실제 확인은 브라우저나 curl
로 8180에 접근하여 보면 되겠다.
4. Docker 참고 문서
- Docker의 개념과 특징
- Docker 설치하기
- Docker 컨테이너 기동하기
- Dockerfile과 이미지 빌드
- 컨테이너 라이프사이클
- Automated Build
- Docker Machine
- Docker 컨테이너 네트워크 설정