①CoreOSでDockerしてみる(CoreOSのセットアップ)

CoreOSでDockerしてみます。


■CoreOSとは?
Dockerコンテナ実行に特化した、Linuxベースの軽量OSです。
https://coreos.com/


■Dockerとは?
コンテナ型の仮想化オープンソースソフトウェアです。
従来はOS全体を仮想化していましたが、コンテナ型の仮想化は、ソフトウェアアプリケーション単位で仮想化します。
その為、インスタンス生成やインスタンス起動が早く、性能劣化が少ない利点があります。
また、仮想化なので、プラットフォームやハードウェアに依存しません。
例えば、WEBサーバ、WEBアプリケーション、データベース等を1つのコンテナで仮想化しておけば、
開発PC上で作成したコンテナを、そのまま本番環境に配置する事ができます。
https://www.docker.com/




まずは、Hyper-V環境に、CoreOSをセットアップします。


■CoreOSのセットアップ
下記から、「coreos_production_iso_image.iso」をダウンロードします。


・Booting CoreOS from an ISO
https://coreos.com/os/docs/latest/booting-with-iso.html


新規にHyper-V仮想マシンを作成し、ダウンロードしたISOから起動します。


CoreOSが立ち上がるので、ユーザ名Coreのパスワードを設定します。

$ sudo passwd core


インストール後のssh接続用パスワードのハッシュ値を取得します。

$ openssl passwd -1
$【ハッシュ値が表示される】


初期セットアップファイルを作成します。

$ vi cloud-config.yml
#cloud-config

coreos:
  update:
    reboot-strategy: best-effort
  units:
    - name: etcd.service
      command: start
    - name: fleet.service
      command: start
    - name: docker.service
      command: start
    - name: timezone.service
      command: start
      content: |
        [Unit]
        Description=timezone
        [Service]
        Type=oneshot
        RemainAfterExit=yes
        ExecStart=/usr/bin/ln -sf ../usr/share/zoneinfo/Japan /etc/localtime

users:
  - name: core
    passwd: `ハッシュ値` ※「openssl passwd -1」で取得したハッシュ値を設定する
    groups:
      - sudo
      - docker


下記のコマンドでインストールします。

#インストール
sudo coreos-install -d /dev/sda -C stable -c cloud-config.yml
sudo shutdown -h now

#インストールCDを外して、起動する

#cloud-config.ymlを保存しておく
sudo coreos-cloudinit -from-file=./cloud-config.yml
sudo cp cloud-config.yml /var/lib/coreos-install/user_data
sudo reboot