【docker】docker composeの使い方

docker composeを使って、イメージの生成、コンテナの生成、コンテナ起動するやり方を説明します。

今回はAnacondaをインストールしてjupyter labを起動するコンテナを作成する。

もくじ
Dockerfile作成

dockerのイメージを作成する設定をDockerfileに定義する
任意のフォルダ(work)を作成
"Dockerfile"と言う名前のテキストファイルを新規作成
ファイルに以下の内容を記述する
FROM ubuntu:latest
RUN apt-get update && apt-get install -y \
sudo \
wget \
vim
WORKDIR /opt
RUN wget https://repo.anaconda.com/archive/Anaconda3-2019.10-Linux-x86_64.sh && \
sh /opt/Anaconda3-2019.10-Linux-x86_64.sh -b -p /opt/anaconda3 && \
rm -f Anaconda3-2019.10-Linux-x86_64.sh
ENV PATH /opt/anaconda3/bin:$PATH
RUN pip install --upgrade pip
WORKDIR /
CMD ["jupyter","lab","--ip=0.0.0.0","--allow-root","--LabApp.token=''"]
| FROM ubuntu:latest | ubuntuのイメージを使用 |
| RUN apt-get update && apt-get install -y \ sudo \ wget \ vim | 必要なものをインストール |
| WORKDIR /opt | 作業ディレクトリを"/opt"に変更 |
| RUN wget https://repo.anaconda.com/archive/Anaconda3-2019.10-Linux-x86_64.sh && \ sh /opt/Anaconda3-2019.10-Linux-x86_64.sh -b -p /opt/anaconda3 && \ rm -f Anaconda3-2019.10-Linux-x86_64.sh | Anaconda3を取得 サイレントインストール |
| ENV PATH /opt/anaconda3/bin:$PATH | 環境変数PATHに/opt/anaconda3/binを追加 |
| RUN pip install --upgrade pip | pipインストール |
| WORKDIR / | 作業ディレクトリを"/"に変更 |
| CMD ["jupyter","lab","--ip=0.0.0.0","--allow-root","--LabApp.token=''"] | juypter labをローカルホスト(127.0.0.1)に設定 rootの動作を許可 tokenを''に設定 |
docker-compose.yml作成

Dockerイメージのビルドや各コンテナの起動の定義をする
version: '3'
services:
my-lab:
build: .
ports:
- '1234:8888'
volumes:
- '../host_dir/:/cont_dir'
tty: true
stdin_open: true
| build: . | コンテナを作成する |
| ports: - '1234:8888' | ポートをマッピング ホスト :1234 コンテナ :8888 |
| volumes: - '../host_dir/:/cont_dir' | ホストとコンテナ間をマウント ホスト : ../host_dir/ コンテナ : /cont_dir |
| my-lab: | コンテナの名前を"my-lab"で生成 |
# yaml の記載方法については下記を参照
# https://docs.docker.com/compose/compose-file/
docker-composeを実行(コンテナ生成、起動)
以下のコマンドを入力してイメージの生成、コンテナ生成、起動する
docker-compose up --buildブラウザからjupyter labにアクセス
パソコンでブラウザを起動してURLに「http://localhost:1234/」を入力する。
コンテナのjupyter labにアクセスします。

