新規記事の投稿を行うことで、非表示にすることが可能です。
2016年06月04日
docker事始め
[root@cent7 ~]# yum install -y docker
[root@cent7 ~]# rpm -qa | grep docker
docker-1.9.1-40.el7.centos.x86_64
docker-selinux-1.9.1-40.el7.centos.x86_64
docker-forward-journald-1.9.1-40.el7.centos.x86_64
docker-common-1.9.1-40.el7.centos.x86_64
[root@cent7 ~]#
[root@cent7 ~]# systemctl start docker
[root@cent7 ~]# systemctl enable docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
[root@cent7 ~]# systemctl -t service list-unit-files | grep -i docker
docker-storage-setup.service disabled
docker.service enabled
[root@cent7 ~]#
イメージファイルをdocker pullコマンドで、インターネット経由で取得する。
[root@cent7 ~]# docker pull centos;centos6
Using default tag: latest
Trying to pull repository docker.io/library/centos ... latest: Pulling from library/centos
1544084fad81: Pull complete
df0fc3863fbc: Pull complete
a3d54b467fad: Pull complete
a65193109361: Pull complete
Digest: sha256:1a62cd7c773dd5c6cf08e2e28596f6fcc99bd97e38c9b324163e0da90ed27562
Status: Downloaded newer image for docker.io/centos:latest
[root@cent7 ~]#
[root@cent7 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
docker.io/centos latest a65193109361 33 hours ago 196.7 MB
[root@cent7 ~]#
docker リポジトリから、ダウンロードしたイメージファイル群のうち、centos6というタグのついたイメージファイルから、コンテナを生成し、起動する。
--nameオプションはコンテナの名前を指定する。-iオプションは、コンテナの標準入力を開いた状態にし、-tオプションは、仮想端末を割り当て、「コンテナの標準入力にアタッチする。
[root@cent7 ~]# docker run --name test01 -i -t centos:centos6 /bin/bash
Usage of loopback devices is strongly discouraged for production use. Either use `--storage-opt dm.thinpooldev` or use `--storage-opt dm.no_warn_on_loop_devices=true` to suppress this warning.
[root@ada7fb668bb6 /]#
コンテナのOSのバージョンを確認します。
[root@ada7fb668bb6 /]# cat /etc/redhat-release
CentOS release 6.8 (Final)
[root@ada7fb668bb6 /]#
[root@ada7fb668bb6 /]# hostname
ada7fb668bb6
[root@ada7fb668bb6 /]#
試しに、dockerコンテナ上にの/rootディレクトリに、ファイルtestfileを作成してみる。
[root@ada7fb668bb6 /]# touch /root/testfile
[root@ada7fb668bb6 /]# ls -l /root/testfile
-rw-r--r-- 1 root root 0 Jun 4 06:09 /root/testfile
[root@ada7fb668bb6 /]#
dockerコンテナのOS環境から、離脱する。
[root@ada7fb668bb6 /]# exit
exit
[root@cent7 ~]#
ホストOS上で、過去に起動したコンテナ一覧を確認
[root@cent7 ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ada7fb668bb6 centos:centos6 "/bin/bash" 5 minutes ago Exited (130) 26 seconds ago test01
作業したコンテナを再利用できるように、コンテナのイメージ化を行う。作業したコンテナIDとイメージを指定して、コミットを行う。
[root@cent7 ~]# docker commit ada7fb668bb6 centos:centos6
4dcb99183e43d3ce417d19b753f520bc894aea858c2729ea9b3c6270f4787a7a
[root@cent7 ~]#
現在のイメージファイルの一覧を確認。
[root@cent7 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
centos centos6 4dcb99183e43 40 seconds ago 194.6 MB
docker.io/centos centos6 e133ccd15399 34 hours ago 194.6 MB
docker.io/centos latest a65193109361 34 hours ago 196.7 MB
[root@cent7 ~]#
先程、コミットしたイメージファイル「centos:centos6」を使って、別のコンテナtest02を生成。
[root@cent7 ~]# docker run --name test02 -i -t centos:centos6 /bin/bash
Usage of loopback devices is strongly discouraged for production use. Either use `--storage-opt dm.thinpooldev` or use `--storage-opt dm.no_warn_on_loop_devices=true` to suppress this warning.
[root@e23e4c8f9044 /]# ls -l /root/testfile
-rw-r--r-- 1 root root 0 Jun 4 06:09 /root/testfile
コンテナtest02で/root/testfile2を生成する
[root@e23e4c8f9044 /]# touch /root/testfile2
[root@e23e4c8f9044 /]# exit
exit
[root@cent7 ~]#
ホストOS側で、生成したtest02をコミットする。
[root@cent7 ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e23e4c8f9044 centos:centos6 "/bin/bash" 2 minutes ago Exited (0) 53 seconds ago test02
ada7fb668bb6 e133ccd15399 "/bin/bash" 29 minutes ago Exited (130) 24 minutes ago test01
[root@cent7 ~]#
[root@cent7 ~]# docker commit e23e4c8f9044 centos:testfile2
b01c09c05772010e429b215463d343fa0116e8cff26709b1eca8aaf6f24c3d13
[root@cent7 ~]#
現在のイメージファイルの一覧を確認。
[root@cent7 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
centos testfile2 b01c09c05772 50 seconds ago 194.6 MB
centos centos6 4dcb99183e43 24 minutes ago 194.6 MB
docker.io/centos centos6 e133ccd15399 34 hours ago 194.6 MB
docker.io/centos latest a65193109361 34 hours ago 196.7 MB
[root@cent7 ~]#
CentOS6.xとCentOS7とのサービス管理コマンド比較
前回記事の続き。
CentOS6.xとCentOS7とのサービス管理コマンド比較。
(CentOS6.x)
#service vsftpd start
(CentOS7)
#systemctl start vsftpd
(CentOS6.x)
#service vsftpd start
(CentOS7)
#systemctl start vsftpd
(CentOS6.x)
#service vsftpd restart
(CentOS7)
#systemctl restart vsftpd
(CentOS6.x)
#service vsftpd reload
(CentOS7)
#systemctl reload vsftpd
ただし、該当サービスのユニット管理ファイルに「ExecReload=」オプションの指定のないサービスの場合、reloadオプションはエラーになります。」
[root@cent7 ~]# cat /usr/lib/systemd/system/vsftpd.service
[Unit]
Description=Vsftpd ftp daemon
After=network.target
[Service]
Type=forking
ExecStart=/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
[Install]
WantedBy=multi-user.target
[root@cent7 ~]# systemctl reload vsftpd
Failed to reload vsftpd.service: Job type reload is not applicable for unit vsftpd.service.
(CentOS6.x)
#service vsftpd status
(CentOS7)
#systemctl status vsftpd
(CentOS6.x)
#service vsftpd condrestart
(CentOS7)
#systemctl condrestart vsftpd
(CentOS6.x)
#chkconfig vsftpd on
(CentOS7)
#systemctl enable vsftpd
(CentOS6.x)
#chkconfig vsftpd off
(CentOS7)
#systemctl disable vsftpd
(CentOS6.x)
#chkconfig --list
(CentOS7)
#systemctl -t service list-unit-files
(CentOS6.x)
#chkconfig --list vsftpd
(CentOS7)
#systemctl -t service list-unit-files | grep -i vsftpd
CentOS7「systemd」についての備忘録
CentOS7でのサービス系管理機能「systemd」についての備忘録。
CentOS7では、chckconfigコマンドによるサービスの有効化、無効化などに代わり、
systemctlコマンドを使って、サービスの起動、停止、状態管理などを行う。
systemdでは、ユニットと呼ばれる単位で、管理を行う。
ユニットとは、systemdの管理対象となる処理の単位のことを指し、次に示すいくつかのタイプが存在する。
- service:各種デーモンやサービスの起動
- target:複数のユニットをグループ化したもの
- mount:ファイルシステムのマウント制御
- device:ディスクデバイス
- socket:FIFP、Unixドメインソケット、ポート番号などに関する通信資源
OSの起動時における起動の有効化・無効化および設定状態を確認するには、ユニットの種類として、「service」を指定し、
list-unit-filesを指定する。
[root@cent7 ~]# systemctl -t service list-unit-files
UNIT FILE STATE
arp-ethers.service disabled
auditd.service enabled
UNIT FILE STATE
・・・・
・・・・
tuned.service enabled
wpa_supplicant.service disabled
144 unit files listed.
[root@cent7 ~]# systemctl -t service list-unit-files | grep -i vsftpd
vsftpd.service disabled
vsftpd@.service disabled
[root@cent7 ~]#
「disabled」は、OS起動時に自動起動しない。
[root@cent7 ~]# systemctl status vsftpd
● vsftpd.service - Vsftpd ftp daemon
Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; disabled; vendor preset: disabled)
Active: inactive (dead)
[root@cent7 ~]#
「Active:」の項目は、「inactive (dead)」のため、現在、vstpdは起動していない。
[root@cent7 ~]# systemctl start vsftpd
[root@cent7 ~]# systemctl status vsftpd
● vsftpd.service - Vsftpd ftp daemon
Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; disabled; vendor preset: disabled)
Active: active (running) since 土 2016-06-04 13:21:17 JST; 4s ago
Process: 8452 ExecStart=/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf (code=exited, status=0/SUCCESS)
Main PID: 8453 (vsftpd)
CGroup: /system.slice/vsftpd.service
mq8453 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
6月 04 13:21:17 cent7 systemd[1]: Starting Vsftpd ftp daemon...
6月 04 13:21:17 cent7 systemd[1]: Started Vsftpd ftp daemon.
[root@cent7 ~]#
「Active:」の項目は、「active (running) 」のため、現在、vstpdは起動している。
[root@cent7 ~]# systemctl enable vsftpd
Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.
[root@cent7 ~]# systemctl -t service is-enabled vsftpd
enabled
[root@cent7 ~]#