티스토리 뷰
[업데이트 2019.02.14 17:09]
먼저 Dockerfile이 위치한 디렉토리로 이동합니다.
만약 Docker Hub에 이미지를 올릴려면, 계정 생성 및 저장소를 생성해야합니다.
Docker 이미지 이름의 컨벤션은 아래와 같습니다.
<username>/<repository>:<tagname>
ex) aibakevision/web-ui:0.0.1
1. 컨테이너 빌드
빌드시 빌드 이미지 이름을 파라메터 -t와 함께 넘겨주며, 빌드 디렉토리로 . 를 줍니다.
현재 디렉토리를 기준으로 빌드를 수행합니다.
docker build -t aibakevision/web-ui:0.0.1 .
ubuntu@server:~/projects/crested-gecko/web-ui$ docker build -t aibakevision/web-ui:0.0.1 . Sending build context to Docker daemon 9.93MB Step 1/7 : FROM python:3.7.2-stretch ---> 7c5fd2af3815 Step 2/7 : RUN mkdir /webapp ---> Using cache ---> a60d96c967f5 Step 3/7 : ADD entrypoint.sh /webapp ---> Using cache ---> 5cd78b6feeac Step 4/7 : ADD ./src /webapp ---> Using cache ---> 712e7ba92dbc Step 5/7 : WORKDIR /webapp ---> Using cache ---> afe58ede3819 Step 6/7 : RUN pip install --upgrade --no-cache-dir pip && pip install --no-cache-dir -r requirements.txt ---> Using cache ---> ac0d5e275f54 Step 7/7 : ENTRYPOINT ["/bin/bash", "entrypoint.sh"] ---> Using cache ---> b45f1d7e1530 Successfully built b45f1d7e1530 Successfully tagged aibakevision/web-ui:0.0.1 ubuntu@server:~/projects/crested-gecko/web-ui$
2. 컨테이너 실행
Docker 이미지 실행시 역시 이미지 이름을 넘겨주며, -p의 옵션을 통해 port forwarding을 수행 할 수 있습니다.
ex) -p 80:5000, 80포트로 접근시 내부적으로 5000포트로 리다이렉션.
또한 background로 수행할 지 foreground로 수행할지 -d, -it 옵션으로 지정할 수 있습니다.
-d: background
-it: foreground
docker run -p 80:5000 -d aibakevision/web-ui:0.0.1
ubuntu@server:~/projects/crested-gecko/web-ui$ docker run -p 80:5000 -it aibakevision/web-ui:0.0.1 * Serving Flask app "app" (lazy loading) * Environment: production WARNING: Do not use the development server in a production environment. Use a production WSGI server instead. * Debug mode: off INFO:werkzeug: * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
ubuntu@server:~/projects/crested-gecko/web-ui$ docker run -p 80:5000 -d aibakevision/web-ui:0.0.1 f3892a9ae045d1230381fbf283ace47cc76472f7057afca38557fd57016be6de ubuntu@server:~/projects/crested-gecko/web-ui$
3. 컨테이너 Docker Hub 업로드
docker push aibakevision/web-ui:0.0.1
ubuntu@server:~/projects/crested-gecko/web-ui$ docker push aibakevision/web-ui:0.0.1 The push refers to repository [docker.io/aibakevision/web-ui] 35a4581a95aa: Pushed 07f6416db4fa: Layer already exists 1083ea0a4e2c: Layer already exists 6400bf0ab6ad: Layer already exists 45b4a7ebd721: Layer already exists bf37704a7eab: Layer already exists a70b9475716b: Layer already exists 889326ab9a3b: Layer already exists 1a36262221c3: Layer already exists d2217ead3a1c: Layer already exists b53b57a50746: Layer already exists d2518892581f: Layer already exists c581f4ede92d: Layer already exists 0.0.1: digest: sha256:12453319e5b7882f0b7da22251e67e23d74f65d51036bb9b6207ee164eeb01f4 size: 3054 ubuntu@server:~/projects/crested-gecko/web-ui$
4. 컨테이너 상태 확인
ps 명령어를 통해 현재 실행중인 Docker 컨테이너를 상태를 확인 할 수 있습니다.
docker ps
ubuntu@server:~/projects/crested-gecko/web-ui$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES d59a17faed43 aibakevision/web-ui:0.0.1 "/bin/bash entrypoin…" 6 hours ago Up 6 hours 0.0.0.0:80->5000/tcp quizzical_ardinghelli ubuntu@server:~/projects/crested-gecko/web-ui$
5. 컨테이너 종료하기
현재 실행중인 Docker 컨테이너를 종료 할 수 있습니다. Docker ps 명령어를 통해 컨테이너 ID를 확인후 종료합니다.
docker stop f3892a9ae045
ubuntu@server:~/projects/crested-gecko/web-ui$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES f3892a9ae045 aibakevision/web-ui:0.0.1 "/bin/bash entrypoin…" 12 minutes ago Up 12 minutes 0.0.0.0:80->5000/tcp sharp_lovelace ubuntu@server:~/projects/crested-gecko/web-ui$ docker stop f3892a9ae045 f3892a9ae045 ubuntu@server:~/projects/crested-gecko/web-ui$
6. 컨테이너 로그 확인
Background로 컨테이너를 수행한 경우 로그 확인을 할 수 없는데, logs 명령어를 통해 현재 실행중인 Docker 컨테이너 로그를 확인 할 수 있습니다.
docker logs f3892a9ae045
ubuntu@server:~/projects/crested-gecko/web-ui$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES f3892a9ae045 aibakevision/web-ui:0.0.1 "/bin/bash entrypoin…" 20 seconds ago Up 19 seconds 0.0.0.0:80->5000/tcp boring_ride ubuntu@server:~/projects/crested-gecko/web-ui$ docker logs f3892a9ae045 * Serving Flask app "app" (lazy loading) * Environment: production WARNING: Do not use the development server in a production environment. Use a production WSGI server instead. * Debug mode: off INFO:werkzeug: * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit) ubuntu@server:~/projects/crested-gecko/web-ui$
- Total
- Today
- Yesterday
- #ApacheZeppelin
- 도커
- project
- Memorize
- belief
- #TensorFlow
- ate
- aws #cloudfront
- Badge
- Jekyll and Hyde
- Library
- #ApacheSpark
- docker
- OST
- some time ago
- Physical Simulation
- Mask R-CNN
- Sea Bottom
- ILoop Engine
- Ragdoll
- #REST API
- GOD
- Game Engine
- 2D Game
- SSM
- #ELK Stack
- sentence test
- English
- Worry
- Meow
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |