DockerからDocker-Composeへ:快適なプログラミング環境を目指して
dockerは便利なのですが、コマンドをいちいちコピペするのが徐々に面倒くなり...
当初からdocker-composeを使おうとしていたのですが、dockerコマンドとの対応がわからず後回しにしていました...
しかし、コンテナを落としてしまった後に同じ環境に戻して起動するのが面倒くさくなってきたので、使用することにしました( ゚Д゚)(Dockerfileを使えばいいだけですが...)
docker-composeを使用することで複数のコンテナを管理することが容易になります。(kubernetesも使ってみたいですね)
とりあえず試しに環境構築しました。ディレクトリの構成は以下の通りです。(pythonのanacondaしか使っていないので1つしかありませんが...)
docker │ docker-compose.yml │ └─build └─app └─anaconda3 Dockerfile
自分用の『Dockerfileとdocker-compose.yml』を一度作ってしまえば、基本コマンドをうつだけでコンテナが起動したので、ちょっと感動しました(‘ω‘ )
anacondaでjupyter notebookを使う環境作るためのDockerfileと、起動用のdocker-compose.ymlを作成してみました。内容は以下の通りです。
docker-compose.yml --------------------------------------------------- version: '2' services: anaconda3: build: ./build/app/anaconda3 tty: true ports: - "8888:8888" volumes: - 自分作業のディレクトリ:/opt/notebooks
Dockerfile --------------------------------------------------- FROM continuumio/anaconda3 RUN apt update -y && \ apt install -y --no-install-recommends \ git && \ rm -rf /var/lib/apt/list/* /var/cache/apt/archives/* RUN mkdir /opt/notebooks RUN conda install -c conda-forge selenium RUN conda install -c conda-forge phantomjs RUN conda install -c clinicalgraphics chromedriver CMD bash -c "conda install jupyter -y --quiet && jupyter notebook --notebook-dir=/opt/notebooks --ip='*' --no-browser --allow-root"``
ファイルを作り終わったら以下のコマンドを打てばコンテナが立ち上がります。 まず、イメージファイルを作ります。
docker-compose build
次に、イメージからコンテナを起動します。
docker-compose up
コンテナを止めたければ、以下のコマンドですべてのコンテナが停止します。
docker-compose down
以上、自分用のメモとしてまとめました。今度はkubernetesも使ってみたいですね('ω')