VirtualBoxのCentOS 7にDocker Community Editionをインストールした
macOS上のVirtualBox上のCentOS 7に、Docker Community Edition (CE)をインストールした。
インストール後、centosとhttpdのDockerイメージからコンテナーを起動させ、基本的なコマンドを試した。
環境は、
macOS Mojave バージョン10.14.1
VirtualBox 5.2.20 r125813 (Qt5.6.3)
CentOS Linux release 7.6.1810 (Core)
docker-ce.x86_64 3:18.09.1-3.el7
docker-ce-cli.x86_64 1:18.09.1-3.el7
containerd.io.x86_64 1.2.2-3.el7
遷移したページのSupported platforms→CentOS
Get Docker CE for CentOSというページに飛ぶので、手順に従いインストールした
必要なパッケージは、yum-utils、device-mapper-persistent-data、lvm2。
# yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
yum-config-managerで、stable repositoryを設定。
yum-config-managerは、上記でインストールしたyum-utilsに含まれているらしい。
# yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
下記が表示されたので、追加された様子。
下記コマンドで、Docker CE と containerdをインストール
# yum install docker-ce docker-ce-cli containerd.io
インストール中に下記の確認が促されるが、Fingerprint が060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35になっているか確認し、y
https://download.docker.com/linux/centos/gpg から鍵を取得中です。
Importing GPG key 0x621E9F35:
Userid : "Docker Release (CE rpm) <docker@docker.com>"
Fingerprint: 060a 61c5 1b55 8a7f 742b 77aa c52f eb6b 621e 9f35
From : https://download.docker.com/linux/centos/gpg
# systemctl start docker
下記コマンドで確認できる。
# docker run hello-world
詳細な説明とともに、下記のようなメッセージが表示される。
Hello from Docker!
This message shows that your installation appears to be working correctly.
上記のコマンドでは、下記のようなことが行われている
Dockerイメージの一覧
# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest fce289e99eb9 4 weeks ago 1.84kB
Dockerコンテナーの一覧
# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a3021d64d043 hello-world "/hello" 31 minutes ago Exited (0) 31 minutes ago quizzical_poincare
下記コマンドで、それぞれコンテナー、イメージを削除できる。(コンテナーを先に消さないと、イメージを削除できない)
指定する文字列は、IDか名前。
コマンド実行後、上記コマンドを再度実行すると、削除されていることが確認できる。
# docker rm a3021d64d043
# docker rmi fce289e99eb9
pullでイメージのダウンロードだけを実行できる
# docker pull hello-world
runの--nameオプションで、コンテナー名を指定できる。
# docker run --name mytest hello-world
# docker pull centos
Using default tag: latestと出力されるように、デフォルトではlatestのものがダウンロードされる
このページにcentosイメージでサポートされているtagが一覧されており、tagを指定する場合はcentos:7のようにすればよい
コンテナーを作成(コンテナー名をtestとした)。-iと-tオプションにより、対話的に操作可能になる。
# docker run -i -t --name test centos
[root@d1477dd72add /]#
exitすると、コンテナーが停止してしまうので、下記でデタッチする。
attachでコンテナーの操作に戻れる
# docker attach test
exitしてコンテナーが停止した場合は、startで起動でき、attachで再度操作できる。
# docker start test
下記のようにexecでbashを起動させれば、exitしてもコンテナーは起動したままとなる。
execはコンテナーでコマンドを実行するための命令なので、コンテナーでbashプロセスが起動し、そのbashが終了するだけなので、コンテナー自体は停止しないからだと思われる。
# docker exec -i -t test bash
[root@d1477dd72add /]# exit
コンテナーをコマンドで停止する場合は、stop
# docker stop test
cpで、コンテナーとファイルをやり取りできる。
ホストからコンテナーに転送する場合は、
# docker cp test.txt test:/home/
コンテナーからホストに転送する場合は、
# docker cp test:/home/test.txt .
# docker pull httpd
コンテナー作成(apache_testという名前にした)。
-p により、ホストの8080がコンテナーの80に転送される。
-d により、コンテナーをバックグラウンドで実行できる。
# docker run -d -i -t --name apache_test -p 8080:80 httpd
これで、ホストの8080にHTTPアクセスすると、It works!と表示された。
コンテナーをbashで操作する場合は、
# docker exec -i -t apache_test bash
インストール後、centosとhttpdのDockerイメージからコンテナーを起動させ、基本的なコマンドを試した。
環境は、
macOS Mojave バージョン10.14.1
VirtualBox 5.2.20 r125813 (Qt5.6.3)
CentOS Linux release 7.6.1810 (Core)
docker-ce.x86_64 3:18.09.1-3.el7
docker-ce-cli.x86_64 1:18.09.1-3.el7
containerd.io.x86_64 1.2.2-3.el7
インストールのマニュアル
dockerのサイトに行き、Resources→Docs→Get Docker遷移したページのSupported platforms→CentOS
Get Docker CE for CentOSというページに飛ぶので、手順に従いインストールした
インストール
必要なパッケージをyumでインストールする。必要なパッケージは、yum-utils、device-mapper-persistent-data、lvm2。
# yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
yum-config-managerで、stable repositoryを設定。
yum-config-managerは、上記でインストールしたyum-utilsに含まれているらしい。
# yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
下記が表示されたので、追加された様子。
repo saved to /etc/yum.repos.d/docker-ce.repo
下記コマンドで、Docker CE と containerdをインストール
# yum install docker-ce docker-ce-cli containerd.io
インストール中に下記の確認が促されるが、Fingerprint が060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35になっているか確認し、y
https://download.docker.com/linux/centos/gpg から鍵を取得中です。
Importing GPG key 0x621E9F35:
Userid : "Docker Release (CE rpm) <docker@docker.com>"
Fingerprint: 060a 61c5 1b55 8a7f 742b 77aa c52f eb6b 621e 9f35
From : https://download.docker.com/linux/centos/gpg
インストールされたかの確認
Dockerを起動。# systemctl start docker
下記コマンドで確認できる。
# docker run hello-world
詳細な説明とともに、下記のようなメッセージが表示される。
Hello from Docker!
This message shows that your installation appears to be working correctly.
上記のコマンドでは、下記のようなことが行われている
- Dockerデーモンが、hello-worldというテストイメージをDocker Hubからダウンロード
- Dockerデーモンが、ダウンロードしたイメージからコンテナーを作成
- コンテナーが出力メッセージを生成
- Dockerデーモンが出力メッセージを返す
コンテナーやイメージの一覧、削除、イメージのダウンロード、コンテナーの名前指定、など
このページに従って、いくつかコマンドを試してみたDockerイメージの一覧
# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest fce289e99eb9 4 weeks ago 1.84kB
Dockerコンテナーの一覧
# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a3021d64d043 hello-world "/hello" 31 minutes ago Exited (0) 31 minutes ago quizzical_poincare
下記コマンドで、それぞれコンテナー、イメージを削除できる。(コンテナーを先に消さないと、イメージを削除できない)
指定する文字列は、IDか名前。
コマンド実行後、上記コマンドを再度実行すると、削除されていることが確認できる。
# docker rm a3021d64d043
# docker rmi fce289e99eb9
pullでイメージのダウンロードだけを実行できる
# docker pull hello-world
runの--nameオプションで、コンテナー名を指定できる。
# docker run --name mytest hello-world
centos
centosイメージをダウンロード。# docker pull centos
Using default tag: latestと出力されるように、デフォルトではlatestのものがダウンロードされる
このページにcentosイメージでサポートされているtagが一覧されており、tagを指定する場合はcentos:7のようにすればよい
コンテナーを作成(コンテナー名をtestとした)。-iと-tオプションにより、対話的に操作可能になる。
# docker run -i -t --name test centos
[root@d1477dd72add /]#
exitすると、コンテナーが停止してしまうので、下記でデタッチする。
control + pを押してからcontrol + q
attachでコンテナーの操作に戻れる
# docker attach test
exitしてコンテナーが停止した場合は、startで起動でき、attachで再度操作できる。
# docker start test
下記のようにexecでbashを起動させれば、exitしてもコンテナーは起動したままとなる。
execはコンテナーでコマンドを実行するための命令なので、コンテナーでbashプロセスが起動し、そのbashが終了するだけなので、コンテナー自体は停止しないからだと思われる。
# docker exec -i -t test bash
[root@d1477dd72add /]# exit
コンテナーをコマンドで停止する場合は、stop
# docker stop test
cpで、コンテナーとファイルをやり取りできる。
ホストからコンテナーに転送する場合は、
# docker cp test.txt test:/home/
コンテナーからホストに転送する場合は、
# docker cp test:/home/test.txt .
Apache
ApacheのDockerイメージをダウンロード。# docker pull httpd
コンテナー作成(apache_testという名前にした)。
-p により、ホストの8080がコンテナーの80に転送される。
-d により、コンテナーをバックグラウンドで実行できる。
# docker run -d -i -t --name apache_test -p 8080:80 httpd
これで、ホストの8080にHTTPアクセスすると、It works!と表示された。
コンテナーをbashで操作する場合は、
# docker exec -i -t apache_test bash
コメント
コメントを投稿