未分類

Dockerの使い方:初めてのDockerコンテナを作成する

このチュートリアルではDockerを使い始めるための基本を説明します。私はあなたがすでにDockerをインストールしていると思います。このチュートリアルのステップは、Dockerと互換性のあるすべてのLinuxディストリビューション(CentOS、Ubuntuなど)で機能します。

最初のDockerコンテナーを作成する

Dockerは仮想コンテナを作成します。Dockerのコンテナシステムはコミットで機能するため非常に効率的です。これによりスペースが節約され、コンテナへの変更を確認できます。たとえば、コンテナにApacheをインストールする場合は、「Installed Apache」という名前のコミットを作成して、何が起こったのかを正確に把握できます。

最初にすることはリポジトリから取得することです。Ubuntuをコンテナにインストールしたいとすると、リポジトリからUbuntuを取得できます。

docker pull ubuntu

これにはしばらく時間がかかりますので、しばらくお待ちください。すべてがダウンロードされたら、このOSでコンテナを作成できます。

docker run -i -t ubuntu /bin/bash

Debianの場合は、例えば:

docker run -i -t debian /bin/bash

OSが見つからない(まだ引っ張られていない)場合は、自動的にDocker Hubから引っ張ります。

事実上、これでコンテナができました。あなたはDockerによって管理されているスリムダウンコンテナでbashを実行しています。環境に慣れるために、いくつかの一般的なLinuxコマンドを実行してみてください。

あなたが入力するとexit、コンテナを終了し、メインのOSに戻るには、変更内容のすべてが消えてしまいます。変更をコンテナに保存するには、コミットを使います。

コミット

Dockerコンテナを作成すると、そのホスト名が自動的に生成されます。たとえば、新しいUbuntuコンテナを作成すると、ホスト名が表示されることがありますf7943e42aff0。これはDockerがあなたのコンテナに付けた名前です。

あなたがそれに欲しいものをインストールして、すべてがうまくいくことを確認してください。次にDockerコンテナを終了します。

exit

今コミットする必要があります。それ以外の場合は、変更内容がすべて失われます。

docker commit -a "William E." -m "Installed Apache" f7943e42aff0 apachesnapshot

この-aスイッチを使用して、誰がそのコミットを作成したのか(誰がコンテナに変更を加えたのか)を正しく判断できます。-mコミットメッセージです。これf7943e42aff0は私のコンテナのホスト名です。Dockerがそれらをランダムに生成するので、あなたの場合は違います。apachesnapshotあなたの画像の名前です。

あなたはあなたのローカルマシン上のすべての画像のリストを見ることができます。最新のものが一番上にあります。

docker images

変更を加えてDockerコンテナを起動するには、次のコマンドを実行します。

docker run -t -i apachesnapshot /bin/bash

Dockerfilesを使う

Dockerfilesは、すでにインストールされているアプリケーションでイメージを作成するために使用できます。これにより、特定のコマンドを実行しなくてもコンテナを起動できます。たとえば、~/file.txt既に作成されたファイルで画像を作成したい場合は、次のDockerfileを使用します。

FROM ubuntu:14.04
MAINTAINER William E. <william@localhost>
RUN touch ~/file.txt

このDockerfileを使ってDockerコンテナを作成するには、あなたのDockerfile用のフォルダをあなたのローカルマシン上に作ります(私が使っていました~/files)。Dockerfileの内容をというファイルに入れますDockerfile。次のコマンドを実行して画像を作成できます。

docker build -t="test" .

これにより、DockerfileスクリプトからDockerイメージが作成されます。これでコンテナーを実行できます。test同じ値であるtestdocker buildコマンドが。

docker run -t -i test /bin/bash

bashシェルが開くと、~/file.txtがすでに作成されていることがわかります。

これは、Dockerを使って作成できる強力な環境の単なる味です。Dockerの公式マニュアルでは、これらのトピックについてさらに詳しく説明しています。この時点で、既存のコンテナーの実行を実験して、独自のイメージ作成を開始できるはずです。