Docker公式のDockerレジストリ「Docker Hub」には、さまざまなDockerイメージが格納されている。
今回は、UbuntuのDockerイメージを利用して、コマンドやシェルスクリプトを実行してみたので、その手順を共有する。
今回は、UbuntuのDockerイメージを利用して、コマンドやシェルスクリプトを実行してみたので、その手順を共有する。
https://hub.docker.com/_/ubuntu
前提条件
以下の手順に従って、Windows端末上に、Docker Desktopをインストール済であること。
やってみたこと
Ubuntu Dockerコンテナの作成・起動
Ubuntu Dockerコンテナを作成・起動し、コマンドを実行する。その手順は、以下の通り。
1)「docker container run -it -d ubuntu:24.10」を実行し、Ubuntu Dockerコンテナを作成・起動する。
なお、オプション「-it」で、コンテナがすぐに終了しないようにし、オプション「-d」で、コンテナをバックグラウンドで起動するようにしている。また、Dockerイメージ名(ubuntu)に加え、タグ名(24.10)も指定するようにしている。
Dockerコンテナのコマンドについては、以下のサイトを参照のこと。
https://zenn.dev/isi00141/articles/2b50dbbd2708b7
2)「docker container ls」コマンドで、1)のUbuntu Dockerコンテナが起動していることが確認できる。
Docker Desktop上でも、以下のように、1)のUbuntu Dockerコンテナの起動が確認できる。
3)「docker exec -it (コンテナID) /bin/bash」を実行すると、以下のように、1)のUbuntu Dockerコンテナにログインすることができる。
4) 1)のUbuntu Dockerコンテナ内で、いくつかコマンドを実行する。
5) exitコマンドを実行すると、以下のように、1)のUbuntu Dockerコンテナからログアウトできる。
6) 1)のUbuntu Dockerコンテナを停止するには、「docker container stop (コンテナID)」コマンドを実行する。その際に指定する(コンテナID)は、「docker container ls」コマンドを実行した時に確認できる。
Docker Desktop上でも、以下のように、1)のUbuntu Dockerコンテナの停止が確認できる。
Ubuntu Dockerコンテナ上でのシェルスクリプト実行
Ubuntu Dockerコンテナを起動するタイミングで、指定したシェルスクリプトを実行できるようにする。その手順は、以下の通り。
1) 以下のように、特定のフォルダ内で「Dockerfile」と、コンテナを起動するタイミングで実行するシェルスクリプト「docker-entrypoint.sh」を配置する。
それぞれのファイルの中身は以下の通りで、docket-entrypoint.shは、Ubuntu上で動かせるよう、文字コードをUTF-8・改行コードをLFとしている。
# 元となるイメージ名を指定 # バージョンを固定するため、タグ(24.10)を指定 FROM ubuntu:24.10 # ローカルのdocker_entrypoint.shを、Ubuntuの/var/tmpフォルダ下にコピー COPY docker-entrypoint.sh /var/tmp # docker_entrypoint.shを/usr/local/binフォルダ下に移動し、実行権限を付与 RUN mv /var/tmp/docker-entrypoint.sh /usr/local/bin/;\ chmod +x /usr/local/bin/docker-entrypoint.sh # 以後はコンテナ実行時に実行する # デフォルトで実行するシェルスクリプトを指定 ENTRYPOINT ["docker-entrypoint.sh"] # シェルスクリプト実行時に、実行するコマンドを指定 CMD ["echo", "Hello from Dockerfile"]
#!/bin/bash # 引数で指定した文字列を表示 echo "Hello from docker-entrypoint.sh" # Dockerfileで指定したCMDを実行 exec "$@"
2) コマンドプロンプトを起動し、「Dockerfile」「docker-entrypoint.sh」が入っているフォルダに移動する。
3)「docker build -t (Dockerイメージ名) (Dockerfileのパス)」コマンドを実行し、Dockerfileに従ったDockerイメージを作成する。
4)「docker image ls」コマンドで、3)で作成されたDockerイメージを確認する。また、「docker container ls -a」コマンドで、3)で作成したDockerイメージをベースとしたDockerコンテナが起動していないことを確認する。
Docker Desktop上でも、以下のように、3)で作成されたDockerイメージが確認できる。
5)「docker container run (イメージ名)」コマンドで、3)で作成したDockerイメージをベースとしたDockerコンテナを作成・起動すると、以下のように、Dockerコンテナが起動したタイミングで、DockerfileのENTRYPOINTで指定したシェルスクリプト(docker-entrypoint.sh)が実行されたことが確認できる。
6)「Docker container ls -a」コマンドを実行すると、5)で起動したDockerコンテナが既に停止しているのが確認できる。
Docker Desktop上でも、以下のように、5)のDockerコンテナの停止が確認できる。
7)「docker container start -i (コンテナID)」コマンドを実行すると、5)で作成・起動したDockerコンテナを再度実行できることが確認できる。
要点まとめ
- Docker公式のDockerレジストリ「Docker Hub」には、さまざまなDockerイメージが格納されている。
- UbuntuのDockerイメージを利用すると、コマンドやシェルスクリプトの実行を行うことができる。