
画像: o_m/Shutterstock
コンテナとDockerの活用を始めたばかりの方は、おそらくオンプレミスのデータセンター内で作業を行っているでしょう。オンプレミスのデータセンターは、この新しいコンテナ化された世界に足を踏み入れる数ある場所の一つです。しかし、いずれはデータセンターを離れ、クラウドホスト型コンテナという広大な世界へと足を踏み入れることになるはずです。
その前に、独自のDockerイメージを構築してDocker Hubにプッシュする方法を知っておく必要があります。なぜでしょうか?それは、そのイメージをチームメイトや世界中の人々に公開したい場合があるからです。
しかし、どうやってそれを実現するのでしょうか?
見せてあげるよ。
非常に簡単です。Dockerfile の構築方法を知っておく必要があります。
参照: Kubernetes: チートシート (無料 PDF) (TechRepublic)
必要なもの
これを機能させるには、次のものが必要です。
- Docker Hub アカウント。
- Docker エンジンの実行中のインスタンス。
- docker グループに属するユーザー (sudo を使用せずに docker コマンドを発行できます)。
以上です。仕事に取り掛かりましょう。
イメージを構築する方法
これから構築するイメージは python:3.8-buster に基づいており、次のライブラリが含まれます。
- ナンピー 1.14.3
- matplotlib 2.2.2
- シーボーン 0.8.1
非常に基本的なものですが、タスクの説明には十分です。まずは、以下のコマンドで作業用のディレクトリを作成しましょう。
mkdir ~/DOCKER
次のコマンドでそのディレクトリに移動します。
cd ~/DOCKER
ここで、次のコマンドを使用して Dockerfile を作成します。
nano Dockerfile
そのファイルに次の内容を貼り付けます。
FROM python:3.8-buster
RUN pip install --upgrade pip
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY src/ .
CMD [ "python", "trtest.py"]
ファイルを保存して閉じます。
上記のコマンドは、python:3.8-busterイメージをダウンロードし、pipを使用してアップグレードした後、新しいファイル(requirements.txt)の内容を読み取り、そのファイルにリストされているすべてのものをインストールします。requirements.txtファイルを作成するには、以下のコマンドを実行します。
nano requirements.txt
そのファイルに次の内容を貼り付けます。
numpy==1.14.3
matplotlib==2.2.2
seaborn==0.8.1
ファイルを保存して閉じます。
次の新しいサブディレクトリを作成します:
mkdir src
Docker Hubアカウントにログインする方法
新しいイメージをプッシュするには、Docker Hubアカウントにログインする必要があります。コマンドラインからDocker Hubにログインするには、まずアクセストークンを作成する必要があります。Docker Hubにログインし、プロフィール画像をクリックします。ポップアップメニューから「アカウント設定」を選択します。表示されたページで、左側のナビゲーションから「セキュリティ」をクリックし、「新しいアクセストークン」をクリックします(図A)。
図A

アクセストークンを生成したら、クリップボードにコピーします。ターミナルウィンドウに戻り、次のコマンドを実行します。
docker login -u NAME
ここで、NAME は Docker Hub のユーザー名です。Docker Hub のパスワードの入力を求められます。パスワードには、先ほど生成したアクセストークンを使用します。
イメージを構築する方法
いよいよイメージをビルドします。イメージの名前はtrtestとします。ビルドするには、以下のコマンドを実行します。
docker build -t trtest .
ビルドが完了すると、trtest という名前の新しいイメージが作成されます。
画像のタグ付けとプッシュ方法
最後に、新しいイメージにタグを付けてDocker Hubにプッシュします。まず、次のコマンドを使ってイメージに :latest タグを付けます。
docker image tag trtest USER/trtest:latest
ここで、USER は Docker Hub のユーザー名です。
イメージにタグが付けられたので、次のコマンドで Docker Hub にプッシュできます。
docker image push USER/trtest:latest
ここで、USER は Docker Hub のユーザー名です。
プッシュが完了すると、Docker Hub リポジトリに trtest:latest イメージが見つかるはずです。
Docker イメージを構築して Docker Hub リポジトリにプッシュする手順はこれだけです。
Jack Wallen によるビジネス プロフェッショナル向けの最新のテクノロジー アドバイスをすべて知るには、YouTube でTechRepublic の How To Make Tech Work を購読してください。