
【C級botter道】2話:Docker-composeでコンテナ管理
前回までDockerを用いてpythonコンテナを作成しました。
今回はDocker-composeでコンテナ管理をし、ついでにjupyter labもインストールしようと思います。
Docker-composeとは?
簡単にいうとDockerコンテナの実行方法を管理するものです。
プログラムの環境構築情報 → Docker(Dockerfile)
Dockerの実行方法 → Docker-compose(docker-compose.yml)
こんなイメージです。

Docker-composeを書いていくぅ
Dockerfileを修正
まずは前回作成したDockerfileを微修正します。
修正内容としては以下のみ
・jupyter labをインストール命令を追加。(14~16行目)
FROM python:3.10.13
RUN apt-get update && \
apt-get install -y \
build-essential \
cmake \
git \
sudo \
wget \
vim
RUN pip install --upgrade pip
COPY ./requirements.txt /requirements.txt
RUN pip install -r /requirements.txt
# jupyter labインストール
RUN python -m pip install jupyterlab
WORKDIR /work
はい、これでコンテナにpython環境とjupyter lab環境を作成することができました。
Docker-composeを新規作成
次はDocker-composeファイルを作成していきます。
作成したdocker-compose.yml
# docker-compose up
version: '3'
services:
mamuru_bot:
build: .
image: mamuru_bot-img
container_name: mamuru_bot-container
working_dir: /work
volumes:
- ./:/work
ports:
- "8888:8888"
command:
jupyter-lab --ip 0.0.0.0 --allow-root -b localhost
実行
準備が完了しましたので、実行していきます。
※Dockerfileとdocker-compose.ymlは同ディレクトリに格納。
docker-compose up
色々と環境が構築されていき、jupyter labサーバーも立ち上がります。

Docker Desktopで確認すると、イメージとコンテナ両方が作成されていることが確認できます。


次に"docker-compose up"を実行したterminalに表示されているURLに接続します。


jupyter labにアクセスできることも確認しました。
一応notebookを立ち上げて動作確認してみます。

まとめ
Dockerfileを修正し、jupyter labをインストールできるようにした。
docker-compose.ymlを作成し、コンテナ管理をできるようにした。
(コンテナ1つだとあまり意味ないかも?)jupyter labに接続、notebookの動作確認を行った。
次回はgithubと連携し、コード管理できるようにしたいと思います。