学習Docker 002〜イメージ〜


スーパーシンプルなDockerfile


バスボックス
https://hub.docker.com/_/busybox
FROM busybox
RUN echo "building simple docker image!!!"
CMD echo "hello container"

ビルド


$ docker build -t hello .
Sending build context to Docker daemon  2.048kB
Step 1/3 : FROM busybox
latest: Pulling from library/busybox
8e674ad76dce: Pull complete
Digest: sha256:c94cf1b87ccb80f2e6414ef913c748b105060debda482058d2b8d0fce39f11b9
Status: Downloaded newer image for busybox:latest
 ---> e4db68de4ff2
Step 2/3 : RUN echo "building simple docker image!!!"
 ---> Running in 1df5fbc4c964
building simple docker image!!!
Removing intermediate container 1df5fbc4c964
 ---> 1ee1020b4fdc
Step 3/3 : CMD echo "hello container"
 ---> Running in ac28127a38e0
Removing intermediate container ac28127a38e0
 ---> 6a252581664b
Successfully built 6a252581664b
Successfully tagged hello:latest

イメージ


$ docker images
REPOSITORY              TAG                 IMAGE ID            CREATED             SIZE
hello                   latest              6a252581664b        25 seconds ago      1.22MB

ランコンテナ


$ docker run --rm hello
hello container

シンプルなUbuntuイメージ

  • はVim
  • をインストールします
  • はGit
  • をインストールします
  • インストールカール
  • は、コンテナ
  • を走らせるとき、Gitバージョンを示します
    Dockerfile
    FROM ubuntu:18.04
    RUN apt-get update && apt-get upgrade -y && apt-get autoremove -y
    RUN apt-get install vim -y
    RUN apt-get install git -y
    RUN apt-get install curl -y
    CMD [ "git", "--version"]
    
    $ docker build -t my_test .
    
    $ docker run --rm -it my_test
    git version 2.17.1
    

    良いdockerfileを作成する方法


    以下は安全な方法かもしれない
  • ベースイメージ
  • を選択します
  • コンテナ
  • のコマンドを実行します
  • STEP 2
  • で使用されたすべてのコマンドを書き留めます.
  • は、ステップ3
  • にされるならば、Dockerfileを作ります

    ステップ1


    我々は良い画像を見つけることができますhttps://hub.docker.com/

    ステップ2


    コンテナのコマンドを実行します.我々がコマンドを試みるとき、我々は-yを使う必要があります

    ステップ3


    コマンドが正常に実行された場合、注意してください.いくつかの点で、コマンドのうちの1つが我々がしたことを台無しにするならば、我々は再び痛みます.
    または、より多くのコマンドを追加するイメージを作成できます.

    ステップ4

    Dockerfileをテストして、修正するすべてのコマンドを書き留めてください

    私の作ったもの


    ベース連続体/anaconda 3
    ソフトウェアパッケージのインストールDockerfile
    # base image
    FROM continuumio/anaconda3:2019.03
    MAINTAINER Koji Kanao <[email protected]>
    
    RUN apt-get update && apt-get upgrade -y && apt-get autoremove -y
    RUN apt-get install vim -y
    RUN apt-get install git -y
    RUN apt-get install curl -y
    RUN apt-get install ffmpeg -y
    RUN apt-get install imagemagick -y
    RUN conda install pytorch torchvision cudatoolkit=9.0 -c pytorch -y
    
    # python packages
    RUN pip install --upgrade \
        pip==19.1.1 \
        && pip install \
        autopep8==1.4.4 \
        setuptools>=41.0.0 \
        opencv-python==3.4.3.18 \
        opencv-contrib-python==3.4.3.18 \
        Pillow \
        numpy \
        pandas \
        scipy \
        matplotlib \
        h5py \
        Keras==2.2.4 \
        scikit-learn \
        scikit-image \
        six \
        sklearn \
        spacy \
        requests \
        beautifulsoup4 \
        tensorflow==1.14.0 
    
    # create work dir
    WORKDIR /workdir
    
    # expose port
    EXPOSE 8888
    
    # start jupyter notebook
    ENTRYPOINT ["jupyter-lab", "--ip=0.0.0.0", "--port=8888", "--no-browser", "--allow-root", "--NotebookApp.token=''"]
    
    # set workdir as notbook dir
    CMD ["--notebook-dir=/workdir"]
    
    ビルドイメージ
    $ docker build -t conda_docker .
    
    ランコンテナ
    $ docker run -it -p 8888:8888 --name doconda --mount type=bind,src=`pwd`,dst=/workdir  conda_docker
    
    オープンlocalhost : 8888

    $ ls
    Dockerfile     Untitled.ipynb
    
    このコンテナは私のMacのホストにノートブックを保存することができます.
    ここからこのイメージを引くことができます
    https://hub.docker.com/r/kojikno/conda_docker
    私は、私がVirtualBoxでこのenvをつくるために2、3時間かかるので、Dockerが大きいと思います.実際に我々は時間を節約するために放浪を使用することができますが、まだそれはまだ仮想マシンを使用するので、一般的に重いとMacのファンは非常にハードのロールを動作する必要があります.私はより多くのDockerを使用すると思うが、まだ学習を維持する必要があります.特にdocker-compose