DockerでCentOSのイメージを使ってみる

DockerでCentOSのイメージを使ってみる

ubuntuに入れたdockerでcentosを利用してみます

Dockerバージョン

docker -v
Docker version 19.03.1, build 74b1e89

CentOSのイメージをpullする

## イメージの検索
docker search centos | more

NAME                               DESCRIPTION                                     STARS               OFFICIAL
     AUTOMATED
centos                             The official build of CentOS.                   5528                [OK]

ansible/centos7-ansible            Ansible on Centos7                              122
     [OK]
jdeathe/centos-ssh                 CentOS-6 6.10 x86_64 / CentOS-7 7.6.1810 x86…   111                               
     [OK]
consol/centos-xfce-vnc             Centos container with "headless" VNC session…   99                                
     [OK]
centos/mysql-57-centos7            MySQL 5.7 SQL database server                   62

今回は公式のcentosを利用

docker pull centos:centos7

## 確認
docker images

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
centos              centos7             67fa590cfc1c        6 days ago          202MB

コンテナの起動

docker run -it (利用したいイメージ) /bin/bash
で起動ができる

docker run -it centos:centos7 /bin/bash

## centosが起動される
[root@225553fa113a /]#

## さきほど起動したコンテナの削除
docker ps -a

でCONTAINER IDを確認し

docker rm CONTAINER ID(頭3文字)

今度は、名前付きで起動
docker run –name ( 任意のコンテナ名) -it (利用したいイメージ) /bin/bash

docker run --name test -it centos:centos7 /bin/bash

[root@24eacb685636 /]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)

コンテナの作成

コンテナの作成は
docker run -it -d –name (任意の名前) (利用したいイメージ)  で作成できます

## mytestという名前で作成
docker run -it -d --name mytest centos:centos7

## 確認
docker ps

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
92a6a460b01e        centos:centos7      "/bin/bash"         7 seconds ago       Up 4 seconds                            mytest

## コンテナを実行
docker exec -it mytest /bin/bash
  • -d: バックグラウンドでコンテナを実行
  • –name: コンテナに名前をつける(今回はmytest)
  • -it: Containerにインタラクティブモードで入ってターミナルを立ち上げる

httpdサービスを起動

## コンテナを実行
docker exec -it mytest /bin/bash

## 実行コマンド
yum -y update
yum -y install httpd
systemctl start httpd

Failed to get D-Bus connection: Operation not permitted
エラー発生

どうやら、コンテナを作成時に –privileged が必要だったようです

## とりあえずコンテナを止める
docker stop mytest

## コンテナも削除
docker ps - a

92a6a460b01e        centos:centos7      "/bin/bash"           33 minutes ago      Exited (137) 25 seconds ago                       mytest

docker rm 92a

## 再度作成
docker run -it --privileged -d  -p 8000:80 --name mytest centos:centos7 /sbin/init

/sbin/init も必要
/sbin/init はコンテナになる/sbin/initを実行するという意味
portも指定 8000でアクセスがあれば、80を利用する

## コンテナの実行
docker exec -it mytest /bin/bash

## もう一度実行
yum -y update
yum -y install httpd
systemctl start httpd ⇒ エラーなし

ブラウザから、http://ipアドレス:8000でアクセス

無事表示されたので成功