Container Development Kit の使用ガイド
スタートガイド
法律上の通知
概要
第1章 Red Hat Container Development Kit について
Red Hat Container Development Kit (CDK) は、開発者が Red Hat Enterprise Linux プラットフォームでコンテナー化されたアプリケーションの開発およびテスト環境をすばやくかつ簡単にセットアップできる一連のツールです。Red Hat CDK は Microsoft Windows、Mac OS X、および Linux オペレーティングシステムで利用できるため、開発者は Red Hat Enterprise Linux エコシステムにデプロイするアプリケーションを作成する際に、それぞれが選択するプラットフォームを使用することができます。
Red Hat CDK は Red Hat Developers プログラムの一部です。これは、Red Hat ソリューションおよび製品を使用してローカルとクラウドの両方でアプリケーションを作成する開発者に対し、各種ツール、リソースおよびサポートを提供します。詳細情報を参照するには、またこのプログラムへの登録および参加を行うには、developers.redhat.com にアクセスしてください。
本使用ガイドでは、Red Hat CDK を構成するそれぞれのコンポーネントについて説明し、次にそれらのコンポーネントの取得、インストールおよび設定方法を説明します。作成される環境を使用してコンテナーとの対話およびコンテナー化されたアプリケーションの開発を開始することができます。
サポートされるプラットフォーム (Microsoft Windows、Mac OS X、および Linux) のそれぞれに Red Hat CDK をセットアップするためのインストール方法の詳細は、『CDK Installation Guide』を参照してください。 Kubernetes または OpenShift を使用した複数コンテナーアプリケーションの開発およびコンテナーのオーケストレーションなどの詳細トピックを含む実際的な使用例については、『Container Development Guide』(CDK の GA に発行予定) を参照してください。
1.1. コンテナーについて
コンテナーは、オペレーティングシステムレベルの仮想化の形態です。コンテナーは共有されるホストシステムのカーネルをベースとし、複数のユーザー空間インスタンス (ソフトウェアコンテナー) を提供します。コンテナーは、ハードウェアレベルの仮想マシンよりも構築し、初期化するのが簡単なため、仮想環境を迅速にデプロイしたり、多数の仮想環境をデプロイしたりする必要がある場合に役立ちます。仮想ソフトウェアコンテナー内で実行されるアプリケーションはホストシステムから分離された状態に保たれます。
1.2. Red Hat CDK について
Red Hat CDK は、開発ワークステーションで使用するオペレーティングシステムの種類によらず、Red Hat Enterprise Linux のコンテナーの開発を可能にします。開発環境の核となるのは、Vagrant によって管理される Red Hat Enterprise Linux の仮想化インスタンスです。Vagrant は軽量で、ポータブルかつ一貫性のある開発環境を使用するためのオープンソースツールであり、インストール済みの Red Hat CDK ソフトウェアコンポーネントと共に事前に構築された Red Hat Enterprise Linux 仮想マシンを起動するために使用されます。Vagrant で使用するためにパッケージ化された仮想マシンは box と呼ばれています。
Red Hat CDK ソフトウェアコンポーネントをインストールすると、Docker を使用して Linux コンテナー開発に着手できます。Docker はソフトウェアコンテナー内でアプリケーションのデプロイメントを自動化するオープンソースプロジェクトです。Docker は、リソースの使用量を制御した状態でコンテナーを分離し、セキュアに保つための各種機能を持つ数多くの主要な Linux テクノロジーに基づいて構築されています。さらに Red Hat CDK は、コンテナー化されたアプリケーションの実際のデプロイメントおよびオーケストレーション向けに Kubernetes と PaaS (Platform-as-a-Service) 製品の OpenShift を提供します。OpenShift は、基礎となるサービスを維持し、必要に応じて実行中のアプリケーションをスケーリングするために使用できます。
以下は、Red Hat CDK をインストールすることによりコンテナー開発で利用できる一連のテクノロジーです。
レイヤーの種類 | テクノロジー |
---|---|
コンテナー |
コンテナーで実行されるアプリケーション |
コンテナー管理 |
Docker サービス |
開発 VM |
Red Hat Enterprise Linux Server 7 |
VM 管理 |
Vagrant |
仮想化プロバイダー |
Virtualbox または libvirt/KVM |
ホストマシン OS |
Microsoft Windows、Mac OS X、または Red Hat Enterprise Linux 7 |
1.3. Vagrant について
Vagrant は、各種の開発環境をパッケージ化し、配布するためのデファクト標準です。これらの開発環境は、 Windows、Mac OS X、および Linux 上で一般に使用される大半の仮想化プラットフォームを使って実行され、また OpenStack、Amazon Web Services (AWS) およびその他の環境のプラグインを使用してクラウドで実行されます。
Vagrant は、開発環境を記述するために Vagrantfile という単一設定ファイルを使用します。Vagrantfile と Vagrant box としてパッケージ化される仮想マシンイメージを使用すると、単一コマンドの vagrant up
は、ネットワーク設定と、コード、データまたは設定の移動のためにホスト OS と共有されるフォルダーのサポートを含む一貫した開発環境を起動します。
Red Hat CDK には、コンテナーを簡単に開発できる環境を提供するために事前に設定された Red Hat Enterprise Linux システムを使用する Vagrant box が含まれます。提供される Vagrant box は、仮想化プラットフォームとして VirtualBox または KVM (および libvirt) のいずれかを使用してデプロイできます。さらに Red Hat CDK には、box 用にソフトウェアをインストールし、ソフトウェアリポジトリーを設定するための Vagrant のプロビジョニングに使用する数多くの Vagrantfile も含まれます。
vagrant ssh
コマンドを使用して Vagrant box にログインします。ネットワーク設定および SSH キーの設定の詳細は Vagrant が自動的に処理します。
1.3.1. Vagrant 設定の概要
Vagrant のポータブルで再現可能な環境を作成し、配布する機能は、ターゲット環境を記述する単一ファイル (Vagrantfile) を使用して利用できます。Vagrantfile は、仮想マシンのイメージ、ネットワーク設定およびプロビジョニング手順などで必要なリソースを定義します。それぞれのターゲット環境には Vagrantfile を含む別々のディレクトリーが使用されます。
1.3.1.1. Vagrantfile の管理
Vagrant コマンドは特定の環境で動作しますが、Vagrant コマンドを使って環境の ID を指定するか (環境がすでに初期化されている場合)、またはこのコマンドを環境の Vagrantfile を含むディレクトリーで実行する必要があります。このディレクトリーは所定環境の「root」ディレクトリーを構成します。Vagrant は、この「root」ディレクトリーの .vagrant
サブディレクトリーに環境の状態情報を保存します。
Red Hat CDK では、数多くのサンプル Vagrantfile が別々のディレクトリーに組み込まれています。各ディレクトリーには README
ファイルがあります。ディレクトリーに移動して README
および Vagrantfile
ファイルを確認してから vagrant up
コマンドで環境を起動して開始します。
ファイルシステムパスで使用されるチルダ文字 (~
) は、Mac OS X または Linux などの Unix ベースのオペレーティングシステムにあるユーザーのホームディレクトリーを表します。これは、Windows システムの %USERPROFILE%\.vagrant.d
に対応します。
環境別の設定ディレクトリーおよび状態ディレクトリーのほかにも、Vagrant は ~/.vagrant.d
ディレクトリーを使用し、所定ユーザーが実行するすべての Vagrant 環境に適用されるデータを保存します。Vagrant box が追加されるか、またはプラグインがインストールされると、それらは ~/.vagrant.d
に追加されます。つまり、vagrant box add
コマンドを実行すると、box の Vagrantfile はユーザー別の Vagrant ディレクトリー ~/.vagrant.d/boxes/
にインストールされます。このファイルはユーザーのホームディレクトリーに保存されるため、各ユーザーは完全に独立しており、他のユーザーがインストールした Vagrant box またはプラグインを見ることはできません。
Vagrant にはシステム全体の設定という概念がないため、Vagrant を root (管理者) として実行する場合でも変更は root のホームディレクトリー内でしか行われず、これらの変更は通常のユーザーには表示されません。
ダウンロードするか、または構築する各 Vagrant box には、その box の基本的な設定を含むそれぞれの Vagrantfile があります。Vagrant box が追加されると、それに含まれている Vagrantfile はユーザー別の ~/.vagrant.d
ディレクトリーにコピーされます。box の Vagrantfile の設定は環境別の Vagrantfile で無効にされる場合があります。
最後に、ユーザーの Vagrant 環境のすべてに利用できる設定用のユーザー別 Vagrantfile が ~/.vagrant.d
にあります。このファイルはデフォルトでは作成されません。
1.3.2. Vagrant の同期フォルダー
box が起動すると、Vagrant は、Vagrantfile と同じディレクトリーにあるホストマシンのファイルを共有するか、またはこれを仮想マシン上の /vagrant
ディレクトリーにコピーします。これは、コード、データおよび設定をホストマシンから Vagrant box に移動する際の便利な自動化メソッドです。
フォルダーの共有およびコピーを行うために利用できるメソッドは、rsync
または NFS、あるいは VirtualBox 共有フォルダーなど多数あります。使用されるメソッドは、ホスト OS、仮想化プラットフォームおよびインストールされたソフトウェアなどの数多くの要因によって異なります。Vagrant は最初に rsync
または VirtualBox 共有フォルダーの使用を試みます。それらが利用できない場合は、NFS にフォールバックします。rsync
を使用すると、Vagrant はホストから Vagrant box へのオンデマンドの一方向のコピーのみを行います。Microsoft Windows では、rsync
はサードパーティーのソースからインストールされる必要があります。
それぞれの共有フォルダーに使用される同期タイプは、Vagrantfile の共有フォルダーの定義に設定できます (config.vm.synced_folder
オプション) 。共有フォルダーの定義は、Vagrant box に同梱される Vagrantfile に含まれている場合もあります。共有フォルダーを完全に無効にしたり、データ共有に使用されるメソッドを変更したりする場合には、この点に留意してください。
ファイルの双方向の同期が必要な場合、Red Hat Enterprise Linux については NFS が推奨されます。NFS をセットアップするには、『Red Hat Enterprise Linux 7 ストレージ管理ガイド』のNFS についての章を参照してください。NFS が利用可能にした後に、Vagrantfile で同期フォルダーのタイプを変更するか、または単に type
属性を config.vm.synced_folder
オプションから削除します。
第2章 Red Hat Container Development Kit のインストール
ご使用の開発ワークステーション (Microsoft Windows、Mac OS X、Red Hat Enterprise Linux、または Fedora) に Red Hat CDK をセットアップするためのインストール方法については、『CDK Installation Guide』に詳細に説明されています。このセクションでは、参照用としてインストール手順の簡潔な概要を示します。
使用するホストオペレーティングシステムの種類を問わず、Red Hat CDK のインストールでは、以下の手順を常に実行する必要があります。
- 仮想化プロバイダーのインストールまたは有効化 (Microsoft Windows および Mac OS X の VirtualBox、Red Hat Enterprise Linux または Fedora の libvirt/KVM)。
- Vagrant のインストール。
- 仮想化プロバイダー用の Red Hat CDK Vagrant box のダウンロード。
- Red Hat CDK ツールのダウンロードおよび展開。
-
rsync
(Microsoft Windows の場合) などの追加の補助ツールのインストール。 - 取得した Vagrant box の初期化。
第3章 Red Hat CDK Vagrant Box との対話
vagrant up
コマンドを使用して Red Hat CDK Vagrant box を作成し、設定した後に、vagrant
コマンドを使用して実行中の仮想マシンと対話できます。vagrant-adbinfo
プラグインを使用すると、Vagrant box 内で実行される Docker サービスと対話できるようにホストのワークステーションをセットアップできます。
3.1. Vagrant コマンドラインインターフェースの使用
Vagrant のコマンドラインインターフェースは、実行中の仮想マシンを照会し、仮想マシンとそれらの box の両方を管理するためのコマンドの基本セットを提供します。
- 環境の状態の照会
-
vagrant status
- すべてのアクティブな環境の状態の照会
-
vagrant global-status
- box で実行されているシステムの停止
-
vagrant halt
- box のシステムの初期状態へのリセット
-
vagrant destroy
- box のシステムのシャットダウンなしの一時停止
-
vagrant suspend
- 一時停止システムの再開
-
vagrant resume
- 実行中のシステムへのログイン
-
vagrant ssh
上記およびその他のコマンドの詳細については、Vagrant ドキュメントの「Command-Line Interface」を参照してください。
3.2. adbinfo Vagrant プラグインの使用
vagrant-adbinfo
プラグインを使用すると、仮想マシンで実行される Docker サービスについての情報を取得できます。以下のコマンドを実行してホストシステム (ご使用の開発ワークステーション) に設定する必要のある環境変数を表示し、ホストベースのツール (Eclipse IDE、docker
コマンド、または OpenShift の oc
コマンドなど) を有効にして仮想マシンの Docker デーモンと対話できます。
~]$ vagrant adbinfo
# Set the following environment variables to enable access to the
# docker daemon running inside of the vagrant virtual machine:
export DOCKER_HOST=tcp://192.168.121.195:2376
export DOCKER_CERT_PATH=/home/john/cdk/components/rhel/rhel-ose/.vagrant/machines/default/libvirt/.docker
export DOCKER_TLS_VERIFY=1
export DOCKER_MACHINE_NAME=081d3cd
# run following command to configure your shell:
# eval "$(vagrant adbinfo)"
Linux で以下のコマンドを実行し、必要な環境変数を設定します。
~]$ eval "$(vagrant adbinfo)"
3.3. Docker サービスの使用
Red Hat CDK 仮想マシンにログインすると (vagrant ssh
コマンドを使用)、Red Hat CDK box の初期化に使用した Vagrantfile に基づいて複数の異なるサービスが事前に設定された状態で実行されます。Docker サービスはいずれの場合でも実行され、このサービスは仮想マシンの起動直後に使用できます。Docker サービスの使用およびこのサービスとの対話は仮想マシン外のホストワークステーションから可能ですが (Eclipse IDE で提供される統合 Docker サポートなどを使用)、このセクションでは、仮想マシン内のコマンドラインから Docker サービスの使用を開始するための数多くの基本的な docker
コマンドを紹介します。
Docker サービスの詳細な説明については、『Red Hat Enterprise Linux Atomic Host 7 コンテナーの使用ガイド』の「Docker フォーマットのコンテナーイメージの使用方法」の章を参照してください。
3.3.1. Docker サービスについての情報の取得
docker
コマンドは、Docker サービスやこのサービスが実行される環境、ならびに利用可能なリソースについての情報を取得するためのいくつかのサブコマンドを提供します。また、このサービスが管理するイメージおよびコンテナー、および事前に設定されたレジストリーから利用できるイメージのサービスを照会できます。デフォルトで、Red Hat CDK の Docker サービスは Docker Hub (docker.io) および Red Hat Atomic Registry (registry.access.redhat.com) の両方からイメージをダウンロードし、使用できます。
3.3.1.1. Docker 環境についての情報収集
以下のコマンドを使用して、Docker サービスおよび稼働中の環境についての情報を取得します。
- Docker サービスのバージョンの確認
docker version
コマンドを実行し、Docker クライアントおよび Docker サーバーの両方のバージョンを確認します。~]$ docker version Client: Version: 1.8.2 API version: 1.20 Package Version: docker-1.8.2-8.el7.x86_64 Go version: go1.4.2 Git commit: a01dc02/1.8.2 Built: OS/Arch: linux/amd64 Server: Version: 1.8.2 API version: 1.20 Package Version: Go version: go1.4.2 Git commit: a01dc02/1.8.2 Built: OS/Arch: linux/amd64
- システムおよびリソースについての情報の表示
docker info
コマンドを実行して、ホストシステム (この場合は、Vagrant が管理する仮想化 Red Hat Enterprise Linux インスタンス)、仮想化リソースの利用、基本的なネットワーク情報、および管理されるコンテナーおよびイメージの数についての情報を表示します。~]$ docker info Containers: 10 Images: 32 Storage Driver: devicemapper Pool Name: VolGroup00-docker--pool Pool Blocksize: 524.3 kB Backing Filesystem: extfs Data file: Metadata file: Data Space Used: 1.695 GB Data Space Total: 7.818 GB Data Space Available: 6.123 GB Metadata Space Used: 786.4 kB Metadata Space Total: 67.11 MB Metadata Space Available: 66.32 MB Udev Sync Supported: true Deferred Removal Enabled: false Library Version: 1.02.107-RHEL7 (2015-10-14) Execution Driver: native-0.2 Logging Driver: json-file Kernel Version: 3.10.0-327.el7.x86_64 Operating System: Red Hat Enterprise Linux Server 7.2 (Maipo) CPUs: 2 Total Memory: 993 MiB Name: localhost.localdomain ID: 5BXK:XDRV:CYAY:RIWW:NGGU:HN77:KATM:LQ4I:FTF6:5TNX:3U5P:7YK6 WARNING: bridge-nf-call-iptables is disabled WARNING: bridge-nf-call-ip6tables is disabled
3.3.1.2. コンテナーおよびイメージについての情報収集
以下のコマンドを使用して、システム上のイメージおよびコンテナーについての情報を取得します。
- 管理イメージの一覧表示
docker images
コマンドを実行して、ローカルレジストリーで利用できるイメージの一覧を表示します。~]$ docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE docker.io/prom/haproxy-exporter latest 559b63e1147d 4 weeks ago 23.56 MB registry.access.redhat.com/openshift3/ose-haproxy-router v3.1.0.4 6a3fe65c07f1 6 weeks ago 410.5 MB registry.access.redhat.com/openshift3/ose-sti-builder v3.1.0.4 8b1293f81020 6 weeks ago 395.6 MB registry.access.redhat.com/openshift3/ose-deployer v3.1.0.4 9580a28b3e18 6 weeks ago 395.6 MB registry.access.redhat.com/openshift3/ose v3.1.0.4 62208f151337 6 weeks ago 395.6 MB openshift latest 62208f151337 6 weeks ago 395.6 MB registry.access.redhat.com/openshift3/ose-docker-registry v3.1.0.4 eb7a879607cf 6 weeks ago 419.9 MB registry.access.redhat.com/openshift3/ose-pod v3.1.0.4 758ab73ad286 6 weeks ago 327.4 MB
- 管理コンテナーの一覧表示
docker ps
コマンドを実行して、実行中のコンテナーの一覧を表示します。--all
または-a
パラメーターを追加して、利用可能なすべてのコンテナーを一覧表示します (実行中のコンテナーに限らない)。以下の出力例にあるように、 Red Hat CDK には起動直後に実行されるいくつかのコンテナーがあります。これらのコンテナーは Red Hat CDK が提供するサービスの一部を提供するので、これらを停止したり削除したりすることはできません。以下の例は、OpenShift サービスを搭載したコンテナーを示しています。--format
パラメーターを指定して、個別のコンテナーについて表示させたい情報を指定します (利用可能なプレースホルダーの一覧については、docker-ps(1)
man ページを参照してください)。以下は例になります。~]$ docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Command}}\t{{.Status}}" CONTAINER ID IMAGE COMMAND STATUS 79dbe220fe97 openshift3/ose-haproxy-router:v3.1.0.4 "/usr/bin/openshift-r" Up 2 hours bd496c95575e prom/haproxy-exporter:latest "/bin/go-run -haproxy" Up 2 hours 09101cf1e40b openshift3/ose-pod:v3.1.0.4 "/pod" Up 2 hours 59b3323bed2b openshift3/ose-docker-registry:v3.1.0.4 "/bin/sh -c 'REGISTRY" Up 2 hours 7889628047b1 openshift3/ose-pod:v3.1.0.4 "/pod" Up 2 hours 7506009d9e1c openshift "/usr/bin/openshift s" Up 2 hours
- コンテナーリソースの使用についての情報の表示
docker stats <container>
コマンドを実行して、特定の実行中のコンテナーのリソース使用の統計を表示するライブ出力を表示します。以下は例になります。~]$ docker stats openshift CONTAINER CPU % MEM USAGE/LIMIT MEM % NET I/O openshift 0.00% 65.65 MB/1.041 GB 6.30% 0 B/0 B
- コンテナーおよびイメージ設定についての詳細情報の表示
docker inspect <container>
コマンドを実行して、コンテナーまたはイメージについてのローレベルの情報を JSON 形式で表示します。同じ名前のコンテナーとイメージがある場合には、--type
パラメーターを使用して、コンテナー
(デフォルト) またはイメージ
についての情報を表示するかどうかを指定します。--format
パラメーターを指定して、表示させたい出力部分を指定します (出力例については、docker-inspect(1)
man ページを参照してください)。たとえば、以下の形式を定義して、コンテナーによって公開されるネットワークポートを一覧表示します。~]$ docker inspect --format='{{.Config.ExposedPorts}}' openshift map[8443/tcp:{} 53/tcp:{}]
3.3.2. 新規 Docker フォーマットのコンテナーイメージの取得
コンテナーを作成するために使用する既存イメージは、2 つの事前に設定されたリポジトリー (Docker Hub (docker.io) および Red Hat Atomic Registry (registry.access.redhat.com)) のいずれかからダウンロード (取得) するか、またはローカルファイルからインポートできます。
- レジストリーを使用したイメージの検索
docker search <search-term>
コマンドを実行して、事前に定義されたレジスターでイメージを検索します。たとえば、名前または名前空間に文字列rhscl
を含むイメージを検索するには、以下のコマンドを使用します。~]$ docker search rhscl INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMAT docker.io docker.io/rhscl/mongodb-26-centos7 A Centos7 based MongoDB v2.6 image for use... 0 redhat.com registry.access.redhat.com/rhscl/devtoolset-4-toolchain-rhel7 Developer toolset toolchain 0 redhat.com registry.access.redhat.com/rhscl/httpd-24-rhel7 Apache HTTP 2.4 Server 0 redhat.com registry.access.redhat.com/rhscl/mariadb-100-rhel7 MariaDB 10.0 SQL database server 0 redhat.com registry.access.redhat.com/rhscl/mongodb-26-rhel7 MongoDB 2.6 NoSQL database server 0 redhat.com registry.access.redhat.com/rhscl/mysql-56-rhel7 MySQL 5.6 SQL database server 0 redhat.com registry.access.redhat.com/rhscl/nginx-16-rhel7 Nginx 1.6 server and a reverse proxy server 0 [...]
- レジストリーからのイメージのダウンロード
docker pull <image>
コマンドを実行して、ローカルで使用するために指定されたイメージをシステムにダウンロード (プル) します。イメージの名前のみを指定することは可能ですが、取得元のレジストリーおよび特定のイメージが公開される名前空間を指定するとなお望ましいと言えるでしょう。以下の順序に基づく命名規則が使用されます。[registry/][namespace/]name
たとえば、Red Hat Atomic Registry から Red Hat Developer Toolset ツールチェーンコンポーネントを使ってイメージを取得するには、以下のコマンドを使用します。
~]$ docker pull registry.access.redhat.com/rhscl/devtoolset-4-toolchain-rhel7 Using default tag: latest 68f6775524af: Download complete 6c3a84d798dc: Download complete Status: Downloaded newer image for registry.access.redhat.com/rhscl/devtoolset-4-toolchain-rhel7:latest ~]$ docker images registry.access.redhat.com/rhscl/devtoolset-4-toolchain-rhel7 REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE registry.access.redhat.com/rhscl/devtoolset-4-toolchain-rhel7 latest 68f6775524af 7 weeks ago 365.5 MB
- ファイルからのイメージのロード
docker load < file.tar
コマンドを実行してイメージをローカルファイルのfile.tar
からロードします。デフォルトでdocker pull
コマンドはイメージデータを標準入力からロードします。ファイルからイメージをロードするには、--input
または-i
パラメーターを使用します。たとえば、docker save
コマンドを使用して tar ファイルに事前に保存された Red Hat Developer Toolset ツールチェーンイメージをロードするには、以下のコマンドを使用します。~]$ docker load -i devtoolset.tar
3.3.3. コンテナーの使用
以下のコマンドを使用して、コンテナーの起動、停止、または削除を実行するか、またはコンテナー内からアプリケーションを実行します。
- 新規コンテナーの起動およびコマンドの実行
docker run <image> <command>
コマンドを実行し、新規コンテナーをイメージから起動し、指定されたコマンドを実行します。--name
パラメーターを使用してコンテナーの名前を指定し、Docker サービスがランダムな名前をコンテナーに割り当てることを防ぎます。たとえば、Red Hat Developer Toolset ツールチェーンから作成されたコンテナーでuname -a
コマンド (-a は出力を表示) を実行するには、以下のコマンドを使用します。~]$ docker run --name devtoolset registry.access.redhat.com/rhscl/devtoolset-4-toolchain-rhel7 uname -a Linux 22b819dec3f1 3.10.0-327.el7.x86_64 #1 SMP Thu Oct 29 17:29:29 EDT 2015 x86_64 x86_64 x86_64 GNU/Linux ~]$ docker ps -a --format "table {{.ID}}\t{{.Names}}\t{{.Command}}\t{{.Status}}" CONTAINER ID NAMES COMMAND STATUS 22b819dec3f1 devtoolset "uname -a" Exited (0) 2 seconds ago [...]
- 既存コンテナーの実行
docker start -i <container>
コマンドを使用して、直前の例で起動したコンテナーを実行します (--interactive
または-i
パラメーターはコンテナーの標準入力を現在のシェルに割り当てるようにします。つまり、コンテナーで実行された出力が表示されるようにします):~]$ docker start -i devtoolset Linux 22b819dec3f1 3.10.0-327.el7.x86_64 #1 SMP Thu Oct 29 17:29:29 EDT 2015 x86_64 x86_64 x86_64 GNU/Linux
- 新規コンテナーの起動およびコンテナーのシェルへの切り替え
docker run -ti <image> bash
コマンドを実行し、イメージから新規コンテナーを起動し、コンテナー内のインタラクティブシェルに切り替えます。--interactive
または-i
パラメーターを--tty
または-t
パラメーターと共に使用し、Bash シェルが実行される疑似 TTY (pseudo-TTY) を割り当てます。以下は例になります。~]$ docker run -it registry.access.redhat.com/rhscl/devtoolset-4-toolchain-rhel7 bash bash-4.2$ uname -a Linux 5e224c8c3878 3.10.0-327.el7.x86_64 #1 SMP Thu Oct 29 17:29:29 EDT 2015 x86_64 x86_64 x86_64 GNU/Linux bash-4.2$ exit exit ~]$ docker ps -a --format "table {{.ID}}\t{{.Names}}\t{{.Command}}\t{{.Status}}" CONTAINER ID NAMES COMMAND STATUS 5e224c8c3878 devtoolset "uname -a" Exited (0) 2 seconds ago [...]
- コンテナーの削除
docker rm <container>
コマンドを実行して、1つ以上のコンテナーを削除し、ホストのリソースを解放します。たとえば、直前の例で作成されたコンテナーを削除するには、以下のコマンドを使用します。~]$ docker rm devtoolset devtoolset ~]$ docker ps -a | grep devtoolset
3.4. その他のリソース
-
利用可能な
docker
コマンドの一覧およびそれらの機能の詳細説明については、docker(1)
man ページのCOMMANDS
セクションを参照してください。 - Red Hat Enterprise Linux および Red Hat Atomic プラットフォームの使用および管理についての詳細は、『コンテナーの使用ガイド』を参照してください。
Comments