Dockerを使うタイミングがまちまち過ぎて毎回Dockerでの環境構築方法を調べている気がするのでメモしておきます。
目次
実施作業
Dockerfileをつくる
Pythonイメージを使えば手っ取り早いですが、今回はAmazonLinuxで作りたかったので、そっちのイメージでDockerfileを作ります。
From amazonlinux:latest USER root SHELL ["/bin/bash", "-c"] RUN amazon-linux-extras install -y python3.8 RUN pip3.8 install pipenv RUN echo 'alias python=python3.8' >> ~/.bashrc RUN echo 'alias pip=pip3.8' >> ~/.bashrc RUN source ~/.bashrc
docker-compose.ymlをつくる
調べた記事がdocker-compose使ってたので、同じようにdocker-compose.ymlファイルを作成します。
version: '3' services: python3: build: . container_name: 'python3' working_dir: '/root/' tty: true volumes: - ./:/root
何気に使ったことないので、パラメータについて調べたことについて簡単に書いておきます。
restartパラメータを設定するとOS起動時にコンテナも自動起動ができるそう。
build:Dockerfileがあるパスを指定
container_name:その名の通りコンテナ名
working_dir:コンテナ内の作業ディレクトリ
tty:コンテナを起動しっぱなしにする
volumes:ホストのディレクトリとの同期設定
restart:alwaysに設定するとOS起動時に自動起動
ビルド&コンテナ起動
docker-compose.ymlファイルがあるディレクトリで以下のコマンドを実行すると、イメージのビルドとコンテナの作成・起動が行われる模様。
-dはバックグラウンド実行です。
$ docker compose up -d --build
コンテナの停止コマンドは以下です。
$ docker compose down
コンテナへの接続
正常に起動されていれば以下のコマンドでコンテナ内部にログインが可能です。
引数のコンテナ名は先ほどdocker-compose.ymlで指定した名前と同じものを指定します。
$ docker compose exec [コンテナ名] bash
以下のコマンドでイメージとコンテナの確認ができます。
$ docker image ls $ docker container ls
念のため、ログイン後python周りのパッケージがインストールできているか確認してみたところ、特に問題はなさそうでした。
bash-4.2# python -V Python 3.8.5 bash-4.2# pip --version pip 21.2.4 from /usr/local/lib/python3.8/site-packages/pip (python 3.8) bash-4.2# pipenv --version pipenv, version 2021.5.29
感想及び所感
これで毎回Google検索しなくてよくなるので、枕を高くして眠れそうです。