🐙
Dockerfileでdockerコンテナ立ち上げからpythonの環境構築までやってみた
今回の記事はDockerfileを利用して「初めてのDocker利用-その1」の内容を再現してみたという内容です。
今回書いたDockerfileと正しく動くかの検証
今回書いたDockerfileは以下の通り。
FROM ubuntu:23.10
RUN apt update
RUN apt -y install python3
このDockerfileをtestフォルダ内においたとする。ここで、
$ cd test
$ docker build -t ubuntu-image:1.1 .
とtestフォルダに移動してdocker build -t ubuntu-image:1.1 .
を実行することでubuntu-image:1.1
というイメージが作成されていることがわかる。
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu-image 1.1 be31fe97b438 3 hours ago 174MB
ここで、今回作成したubuntu-image:1.1
イメージからubuntu
コンテナを起動する。
$ docker container run -itd --name ubuntu ubuntu-image:1.5
274c70d0b5a45bf59df04b5ccaa9ab27448313f89d7e240bc98e962d8c928d1e
dockerのコンテナ状況を確認すると、
$ docker ps -a274c70d0b5a4 ubuntu-image:1.5
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
274c70d0b5a4 ubuntu-image:1.1 "/bin/bash" 3 hours ago Exited (0) 3 hours ago ubuntu
となっている。ここで注意したいのはubuntu
コンテナは停止していることである。なのでコンテナを起動させた上で中に入る。
$ docker start ubuntu
ubuntu
$ docker container exec -it ubuntu /bin/bash
root@4410257b4787:/#
この時、pythonのバージョンを確認すると、
root@4410257b4787:/# python3 --version
Python 3.11.4
となっており、初めからpythonが入っているコンテナになっていることがわかる。
Dockerfileの説明
DockerfileのRUN apt -y install python3
の部分についてオプションの-y
は何か聞かれた時に全てyesを返すオプションである。これがないと最後まで実行が止まる箇所があったのでそこは「初めてのDocker利用-その1」とは異なる部分になる。
Dockerfileの書き方
参考にすべきものとして「効率的に安全な Dockerfile を作るには」が挙げられる。また、Dockerfileでよく使われるコマンドをまとめておく。
コマンド | 用途 |
---|---|
FROM | 本となるDockerイメージの指定 |
RUN | コマンドの実行 |
ADD | ファイル/ディレクトリの追加 |
CMD | コンテナの実行コマンド1 |
ENTRYPOINT | コンテナの実行コマンド2 |
WORKDIR | 作業ディレクトリの指定 |
EMV | 環境変数の指定 |
EXPOSE | ポートのエクスポート |
なお、CMDとENTRYPOINTの違いについて、前者はDockerfile実行時にデフォルトで実行したいコマンドを記載するのに対し、後者は必ず実行したいコマンドを記載する必要がある。
Discussion