2017年10月30日月曜日

Oracle Docker の docker-storage-config とは。

Oracle Linux の Docker ドキュメントを読むと、
docker-storage-config というものが登場します。
これは Oracle Linux の docker-engine-17.06 以降の RPM に含まれる
ストレージ自動構成スクリプトとのことです。
そこで、ためしに使ってみました。

Oracle Linux 7
Oracle Container Runtime for Docker User's Guide
2.5 Configuring Docker Storage
https://docs.oracle.com/cd/E52668_01/E87205/html/docker_install_upgrade_storage.html

まず、今回の Oracle Linux は 7.4 です。
[root@docker02 ~]# cat /etc/oracle-release
Oracle Linux Server release 7.4
[root@docker02 ~]# uname -r
4.1.12-103.7.3.el7uek.x86_64

このスクリプトは、Docker(docker-engine)の RPM に含まれているスクリプトです。
そして今回の Docker のバージョンです。
[root@docker02 ~]# which docker-storage-config
/usr/bin/docker-storage-config
[root@docker02 ~]# rpm -qf /usr/bin/docker-storage-config
docker-engine-17.06.2.ol-1.0.1.el7.x86_64
[root@docker02 ~]# file /usr/bin/docker-storage-config
/usr/bin/docker-storage-config: Bourne-Again shell script, ASCII text executable

Docker のサービスは停止した状態で、まだ /var/lib/docker は空です。
[root@docker02 ~]# systemctl is-active docker
inactive
[root@docker02 ~]# ls /var/lib/docker/
[root@docker02 ~]#

では、スクリプトを実行します。
今回は /dev/sdb に Btrfs でストレージを構成してみました。
ファイルシステムが作成されたようです。
[root@docker02 ~]# docker-storage-config -s btrfs -d /dev/sdb
Creating 'btrfs' file system on: /dev/sdb

/etc/fstab にも、マウント設定が追記されました。
[root@docker02 ~]# grep docker /etc/fstab
UUID=aa8f6176-2b6e-437d-856e-533512da62f9 /var/lib/docker btrfs defaults 0 0 # added by docker-storage-config

自動的にマウントされています。
[root@docker02 ~]# df -h /dev/sdb
ファイルシス   サイズ  使用  残り 使用% マウント位置
/dev/sdb          30G   17M   28G    1% /var/lib/docker

ほかにも、たとえば下記のような Docker むけのストレージ設定ファイルが
自動作成されたりするようです。
[root@docker02 ~]# cat /etc/docker/daemon.json
{
    "storage-driver": "btrfs"
}

Docker のサービスを起動すると、Btrfs でストレージ構成された状態で起動できます。
[root@docker02 ~]# systemctl start docker
[root@docker02 ~]# docker info
Containers: 0
 Running: 0
 Paused: 0
 Stopped: 0
Images: 0
Server Version: 17.06.2-ol
Storage Driver: btrfs
 Build Version: Btrfs v4.9.1
 Library Version: 102
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host macvlan null overlay
 Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 6e23458c129b551d5c9871e5174f6b1b7f6d1170
runc version: 810190ceaa507aa2727d7ae6f4790c76ec150bd2
init version: 949e6fa
Security Options:
 seccomp
  Profile: default
 selinux
Kernel Version: 4.1.12-103.7.3.el7uek.x86_64
Operating System: Oracle Linux Server 7.4
OSType: linux
Architecture: x86_64
CPUs: 1
Total Memory: 1.701GiB
Name: docker02
ID: B7F6:PCKV:6B7Q:DXVD:OTBR:GG23:4R7I:IT4U:X357:NTHC:7NN3:6XHP
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Experimental: false
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false

[root@docker02 ~]#

このスクリプトは、ORACLE 独自のもののようです。
[root@docker02 ~]# head -n 3 /usr/bin/docker-storage-config
#!/bin/bash
#
# Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.

あまり複雑な設定を自動化するわけではないようですが、
インストールしたばかりの Oracle Linux でとりあえず Docker を使い始めるときに
便利かもしれません。

以上、docker-storage-config を使用してみる話でした。

0 件のコメント:

コメントを投稿