Docker

기본 명령

정리 필요

중단, 재시작 명령 정리

중단하면서 컨테이너 삭제까지 병행

$ docker rm -f 7e555bde5128

2개의 볼륨을 마운트하고 종료시 자동으로 삭제되도록 foreground로 구동했다. 백그라운드는 -it를 제외하고 -d로 구동한다. CMD는 구동 마지막에 실행된다.

docker run --rm -it \
-v /Users/kaonpark/workspace/github.daumkakao.com/NLP/simpson:/simpson/simpson \
-v /Users/kaonpark/workspace/github.daumkakao.com/NLP/simpson-data:/simpson/simpson/data \
-p 5000:5000 \
--name simpson-ngine idock.daumkakao.io/kaon_park/simpson

최신 docker 이미지를 다른 포트에 중복 구동

sudo docker run -d -v ~/data:/simpson/simpson/data -p 5001:5000 abc.xxx.io/kaon_park/simpson

참고

업데이트가 있을 경우 자동으로 이미지를 받아서 교체하는 스크립트

Push a docker image to a private repo

로그인, 태깅, 푸쉬 절차를 통해 업로드 할 수 있다.

$ docker login idock.daumkakao.io/kaon_park/fusion-tomcat
$ docker tag 8dde0f42c6b2 idock.daumkakao.io/kaon_park/fusion-tomcat
$ docker push idock.daumkakao.io/kaon_park/fusion-tomcat

CMD vs. ENTRYPOINT

항상 헷갈린다. 주로 CMD로 처리했으며, docker run 이후에 실행된다.

  • CMD: when container runs with a command, e.g., docker run -it <image> /bin/bash, CMD is ignored and bash interpreter runs instead.
  • ENTRYPOINT: Shell form of ENTRYPOINT ignores any CMD or docker run command line arguments.

RUN, CMD, ENTRYPOINT의 관계를 잘 정리한 글

# Dockerfile
FROM ubuntu
ENTRYPOINT ["/bin/cat"]

and

$ docker build -t=cat .

then you can see:

$ docker run cat /etc/passwd
#                ^^^^^^^^^^^
#                    CMD
#            ^^^      
#            image (tag)- using the default ENTRYPOINT

Link

아래는 php 어플리케이션을 구동하기 위해 몇 가지 수정한 Dockerfile이다.

FROM php:7-apache
LABEL maintainer="kaon.park@kakaocorp.com"

# 기본 포트가 80으로 설정되어 있어 sed로 교체한다.
ENV CONTAINER_PORT 18080
EXPOSE 18080
RUN sed -i "s/80/$CONTAINER_PORT/g" /etc/apache2/sites-available/000-default.conf /etc/apache2/ports.conf

# CMD is the command the container executes by default when you launch the built image.
# A Dockerfile can only have one CMD.
# CMD docker-php-entrypoint apache2-foreground

# 개발시에는 VOLUME 설정을 하고 실서비스는 파일을 복사한다.
COPY ./demo/index.php /var/www/html/

도커/쿠버네티스를 활용한 컨테이너 개발 실전 입문 2018, 2019

  • 도커 컨테이너 배포
  • 스웜을 이용한 실전 애플리케이션 개발
  • 쿠버네티스 입문/클러스터 구축
  • 컨테이너 운영
  • 가벼운 도커 이미지 만들기

2017 Book Reports · 2018 Book Reports · 2019 Book Reports · AWS · Activation, Cost Functions · Android Development · CNN, RNN · C++ · Decision Tree · Docker · Go · HTML, CSS, JavaScript · Hadoop, Spark · Information Retrieval · Java · Jupyter Notebooks · Keras · LeetCode · LifeHacks · MySQL · NLP 가이드 · NLP 실험 · NLP · Naive Bayes · OAuth 2.0 · OOP · Project Management · Python Data Structure Cheatsheet · Python · RSA · Software Deployment · Support Vector Machine · TensorRT · Word Embedding · XGBoost · Scikit Learn · 거리 · 데이터 마이닝 · 데이터 사이언스 · 딥러닝 · 머신러닝 분류기 · 머신러닝 · 미래학 · 비지니스 · 사회심리학 · 수학 · 알고리즘 · 영어 · 운영체제 · 이산수학 · 인공지능 · 자료구조 · 진화생물학 · 컴파일러 · 컴퓨터시스템구조 · 통계학 응용 · 통계학 ·
is a collection of Papers I have written.
© 2000 - Sang-Kil Park Except where otherwise noted, content on this site is licensed under a CC BY-NC 4.0.
This site design was brought from Distill.