Docker Hub 上の公式リポジトリ
前回は、自分でイメージをビルドする方法を紹介しましたが、可能な限りDocker Hubで提供されている標準ベースイメージを選択するほうがより簡単です。
Docker Hub はクラウド上のレジストリ・サービスで、アプリケーションやサービス・コンテナの構築と配信が可能です。
誰でも無料でアカウントを作成することができます。また、デフォルトの無料プランでは、プライベートのレポジトリが1つ作成可能です。ちなみにMicroプランでは、月$7で、最大5つのプライベートのレポジトリの作成可能です。
https://hub.docker.com/ からログインするとこのような画面が表示されます。
今回は、公開されている公式ベースイメージを検索し、利用していきます。
検索方法は、2つあります。
1つ目は、ウェブのサーチボックスで検索する方法です。
2つ目は、コマンドから検索する方法です。
$ sudo docker search amazon
検索結果は、このような感じになります。
それでは早速、amazonlinuxを例にホストマシンにダウンロードし、実行してみましょう。
$ sudo docker pull amazonlinux
$ sudo docker run -it amazonlinux:latest bash
-it
は疑似 TTY(pseudo-TTY)をコンテナの標準入力に接続するよう、 Docker に対して命令します。つまり、コンテナ内でインタラクティブな bash
シェルを作成します。
試しにimage-idを確認してみます。ちなみに、AWSのアカウントなしでも気軽に利用することができます。
bash-4.2# cat /etc/image-id
image_name="amzn2-container-raw"
image_version="2"
image_arch="x86_64"
image_file="amzn2-container-raw-2.0.20181114-x86_64"
image_stamp="b1c1-d1b4"
image_date="20181114072229"
recipe_name="amzn2 container"
recipe_id="901690cd-b186-0bcf-b40b-6b66-f927-3af2-a8f848dd"
また、どんなコマンドが実行されるかなどイメージの中身をチェックすることもできます。
$ sudo docker inspect amazonlinux
[
{
"Id": "sha256:2467e0b1e91745890aa0298126eef4f5edeca2998ec07e932b468b2fb23d11f7",
"RepoTags": [
"amazonlinux:latest"...
"Cmd": [
"/bin/sh",
"-c",
"#(nop) ",
"CMD [\"/bin/bash\"]"
],
...
その他、イメージをマウントした後に、どんなパッケージがインストールされているかなども、チェックするこができます。
$ sudo atomic mount amazonlinux /mnt
$ rpm -qa --root /mnt|less
setup-2.8.71-9.amzn2.noarch
glibc-common-2.26-28.amzn2.0.1.x86_64
ncurses-libs-6.0-8.20170212.amzn2.1.2.x86_64
libselinux-2.5-12.amzn2.0.2.x86_64
nss-util-3.36.0-1.amzn2.x86_64
...
アンマウントするには、次のコマンドを実行します。
$ sudo atomic unmount /mnt