Dockerは、dockerfileを使用して、任意のdockerイメージを構成し、独自のカスタムイメージを作成する簡単な方法を提供します。
このチュートリアルでは、Dockerリポジトリから公式イメージを取得し、独自の要件に従ってカスタマイズする方法を学習します。次に、カスタムDockerイメージを実行して確認できます。
したがって、この例では、デフォルトでVimエディターを含まないAlpineLinuxイメージを使用します。このDockerイメージを変更して、デフォルトでVimエディターを含むAlpineLinuxの新しいDockerイメージを作成します。これ以上簡単なことはできません。できますか?
まだインストールしていない場合は、Ubuntuまたは使用しているLinuxディストリビューションにDockerをインストールしてください。 sudoなしでdockerを実行できるように、必ずdockerグループに自分を追加してください。
ベースDockerイメージをダウンロードするには、アクティブなインターネット接続が必要です。
ステップ1:Dockerイメージを取得する[オプション]
この例では、Alpine Linuxが非常に小さいため、AlpineLinuxを選択しました。アルパインドッカーの画像のサイズはほとんど5MBではありませんが、信じられますか?コンテナ化に最適なLinuxディストリビューションです。
このステップはオプションです。カスタマイズされたDockerイメージと比較できることを示すために含めました。
docker pullコマンドを使用してAlpineLinuxの最新のdockerイメージをプルします:
docker pull alpine
ステップ2:必要なカスタマイズを使用してDockerfileを作成する
次に、touchコマンドを使用してDockerfileという名前の新しい空のファイルを作成しましょう。
touch Dockerfile
次に、このファイルとこれらの3行を編集して、保存する必要があります。 VimやNanoなどのエディターを使用するか、catコマンドを使用してこれらの行をDockerfileに追加できます。
FROM alpine:latest
RUN apk update
RUN apk add vim
ここで行っているのは、DockerHubから最新のAlpineDockerイメージをダウンロードして、新しいDockerイメージを作成することです。
aptと同様に、Alpineはapkパッケージマネージャーを使用します。したがって、次の2つのコマンドは、基本的にAlpine Linuxに利用可能なパッケージキャッシュを更新し(apk update)、次にVimをインストールする(apk add vim)ように指示しています。
ご覧のとおり、DockerfileでRUNを使用すると、特定のコマンドを実行してベースDockerイメージをカスタマイズできます。
ステップ3:Dockerfileを使用してカスタムDockerイメージを作成する
Dockerfileからカスタムイメージをビルドするコマンドは次のようになります。
docker build -t new_docker_image_name PATH_to_Dockerfile
-tタグを使用して、カスタムDockerイメージの名前を指定します。
Dockerfileが現在のディレクトリにあることを考慮して、次のようにVimをインストールしたAlpineLinuxの新しいDockerイメージを作成できます。
docker build -t alpine-with-vim .
今すぐシステムで利用可能なDockerイメージを見てみましょう:
[email protected]:~$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
alpine-with-vim latest fa8255cf0de0 5 seconds ago 33.9MB
alpine latest a187dde48cd2 3 weeks ago 5.6MB
サイズがほとんど5MBではなかったベースDockerイメージが、Vimがインストールされた(そしてパッケージキャッシュが更新された)33MBになっていることがわかります。
次に、コンテナを実行して、変更したDockerイメージにvimがインストールされていることを確認しましょう:
docker container run -ti alpine-with-vim /bin/sh
コンテナに入ったら、バージョンをチェックしてVimがインストールされていることを確認できます:
/ # vim --version
VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Dec 12 2019 19:30:49)
Compiled by Alpine Linux
ターミナルでexitと入力して、コンテナを終了します。コンテナーを停止し、コンテナーを削除し、Dockerイメージを(必要に応じて)削除して、ディスク領域を解放します。
おめでとうございます!独自にカスタマイズしたDockerイメージを作成する方法を学びました。
それほど大規模なチュートリアルではなく、複雑なニーズがあるかもしれません。ただし、このチュートリアルは、Dockerイメージのカスタマイズを理解するための最初のステップとして機能します。
Dockerfileの詳細を読んで、Dockerイメージをカスタマイズするために利用できる他のオプションを確認することを強くお勧めします。
ご質問やご提案がございましたら、下にコメントを残してください。