カテゴリ: 技術

LINE@のLIFF機能
https://developers.line.biz/ja/docs/liff/overview/
とか使ってみようと思って、


それから、Let's Encrypt が Wildcard 対応していたような。。
https://community.letsencrypt.org/t/acme-v2-production-environment-wildcards/55578

と思って試そうかと思ったのですが、
https://certbot.eff.org/docs/using.html#dns-plugins
Wildcard 証明書は DNS Challenge が必要そうで、
おそらく、証明書更新を自動化するには DNS plugin を使わなければいけないようです。。

まあ、そうですよね。。。て言うか逆に、ドメインの設定をするなら、DNSを基準にしますよね。。
と言うわけで、

そして、私の使っているDNSサービスはpluginsに含まれていないし、多分APIもないので、
一旦は諦めようかな。と。

https://qiita.com/chamaharun/items/566c78bb8a13b4c2bc16
などの記事もありますね。
これに従えば、一時的に手動でwildcard証明書は更新できそうではあります。


今回は、そもそも証明書更新自体の自動化も以前やりかけて完了させていなかったので、
まずはそこまで目指すこととしました。

しかし、ぶっちゃけてしまうと、
https://certbot.eff.org/lets-encrypt/ubuntuxenial-nginx
の通り、Ubuntu 上で certbot をインストールし、
nginx は普通にroot+www-dataで動作していて /etc/nginx にファイルもあったので、

sudo certbot run --nginx

を実行して、あとは言われるがままに。。。と言う状況でした。


そして、あとは証明書更新の自動化。。とおもったら、packageで導入しているとその設定もすでに。。。
https://certbot.eff.org/docs/using.html#automated-renewals
なんもすることなかった。。という。。w

私の理解ですが、
https://github.com/docker/swarm
を見るに、
  • Docker Swarm standalone
  • Docker の Swarm mode すなわち Swarmkit: Docker Engine 1.12 以降に入ったクラスターモード
ということのようです。そして、Docker のおススメは、新しいDockerを使って、Swarm mode を使おう、とのこと。 https://github.com/moby/moby/blob/master/CHANGELOG.md
によると、1.12 は 2016-07-28 にリリースされているようですが、
その後も Swarmkit (Swarm mode) は結構更新されているような感じがします。

Docker Swarm はもともと、複数立てられた Docker 群に対して外部から操作するツールとして動作し、containerたちを管理します。
(http://knowledge.sakura.ad.jp/knowledge/5197/ も参考)
一方で、Swarmkit (Swarm mode) はDocker Engine自体に組み込まれて、複数のDocker群がclusterとしてcontainerを管理できるようになった、ということのようです。

まあ詳しいことは、
Docker Swarm https://docs.docker.com/swarm/overview/

Swarm mode https://docs.docker.com/engine/swarm/#feature-highlights
を読んでね。ということです。
ああ、、知識が古い。。。

https://docs.docker.com/docker-for-windows/install/ に従って、Docker for Windows をインストールして動かしてみます。
最終的には、Docker Swarm mode を Google Compute Engine で立ててみようかな、というのをゴールにして、いろいろ試してみようかと思う次第。

  1. Stable version を試したいので、Get Docker for Windows (Stable) をクリック
  2. で、ダウンロードしたファイルを実行。
だけw
なのですが、一応チェックしたポイントも書いておきます。

まず、
Docker for Windows requires 64bit Windows 10 Pro and Microsoft Hyper-V
ということで、Windows 10 Pro と Hyper-V が必要です。
たまたま私は以前、WindowsXPモードや仮想マシン環境を試したかったこともあって Pro だったので、問題ありませんでした。

上記ページにも書かれていますが、インストーラーがHyper-Vは自動的に ON にしてくれるので、基本的には指示に従って再起動するのを待つくらいで大丈夫です。
もう1点、仮想化が有効でないといけません、ということが書かれており、
https://docs.docker.com/docker-for-windows/troubleshoot/#virtualization-must-be-enabled
をみてね、とのこと。
CPUが仮想化をサポートしているかどうか、ということと思いますが、これも同じ理由でサポートしているものを使っていたのでクリア。


というわけで、インストール完了後、
https://docs.docker.com/docker-for-windows/install/#start-docker-for-windows
に従って起動してみることに。
(ちなみに以前から Cygwin ユーザーのため、ここでは Cygwin 使ってたり。特に問題はなさそう?)
---------
$ docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
78445dd45222: Pulling fs layer
78445dd45222: Verifying Checksum
78445dd45222: Download complete
78445dd45222: Pull complete
Digest: sha256:c5515758d4c5e1e838e9cd307f6c6a0d620b5e07e6f927b07d05f6d12a1ac8d7
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://cloud.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/engine/userguide/
---------

次は、local 環境で Docker Swarm mode を使ってみようと思います。

追記:
$ docker run -it ubuntu bash
したところ、
the input device is not a TTY.  If you are using mintty, try prefixing the command with 'winpty'
と言われてしまったので、tty を使う場合には、Cygwinのターミナルそのままではだめなのかもしれないです。





↑このページのトップヘ