![見出し画像](https://assets.st-note.com/production/uploads/images/126485608/rectangle_large_type_2_e5a1a751c4a29861c3fe4ec508e2bf02.png?width=1200)
【C級botter道】2話:Docker-composeでコンテナ管理
前回までDockerを用いてpythonコンテナを作成しました。
今回はDocker-composeでコンテナ管理をし、ついでにjupyter labもインストールしようと思います。
Docker-composeとは?
簡単にいうとDockerコンテナの実行方法を管理するものです。
プログラムの環境構築情報 → Docker(Dockerfile)
Dockerの実行方法 → Docker-compose(docker-compose.yml)
こんなイメージです。
![](https://assets.st-note.com/img/1704247493646-wA9HMhE0OP.png?width=1200)
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サーバーも立ち上がります。
![](https://assets.st-note.com/img/1704249878705-KZeckSrBUQ.png?width=1200)
Docker Desktopで確認すると、イメージとコンテナ両方が作成されていることが確認できます。
![](https://assets.st-note.com/img/1704249932368-PefdAcF8iW.png?width=1200)
![](https://assets.st-note.com/img/1704249955604-Zd5FTbOBp1.png?width=1200)
次に"docker-compose up"を実行したterminalに表示されているURLに接続します。
![](https://assets.st-note.com/img/1704250052239-0eXT2DWvvP.png?width=1200)
![](https://assets.st-note.com/img/1704250104024-fGiesk9e9g.png?width=1200)
jupyter labにアクセスできることも確認しました。
一応notebookを立ち上げて動作確認してみます。
![](https://assets.st-note.com/img/1704250213905-1esE2kHx0o.png?width=1200)
まとめ
Dockerfileを修正し、jupyter labをインストールできるようにした。
docker-compose.ymlを作成し、コンテナ管理をできるようにした。
(コンテナ1つだとあまり意味ないかも?)jupyter labに接続、notebookの動作確認を行った。
次回はgithubと連携し、コード管理できるようにしたいと思います。
この記事が気に入ったらサポートをしてみませんか?