弐号機は自宅内サーバー化するので、Docker のホストとしても活用したい。
- https://qiita.com/iganari/items/fe4889943f22fd63692a
- https://docs.docker.com/install/linux/docker-ce/ubuntu/#install-using-the-repository
- https://docs.docker.com/compose/install/
#### 必須パッケージのインストール $ sudo apt install -y apt-transport-https gnupg-agent $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - #### リポジトリの追加 $ sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable" $ sudo apt update #### Docker-CE のインストール $ sudo apt-get install docker-ce docker-ce-cli containerd.io
本来は”ca-certificates”, “curl”, “software-properties-common” も必要だが、すでに入っていたので割愛。
この状態で Docker を使えるようになっているが、一般ユーザーでも Docker のコマンドを使えるように設定する。
$ cat /etc/group | grep docker docker:x:999: $ sudo gpasswd -a ubuntu docker # ubuntu は一般ユーザー名 $ cat /etc/group | grep docker docker:x:999:ubuntu # 追加されたのを確認 (一旦、ターミナルからログアウトし、再ログイン) $ docker run hello-world Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world 1b930d010525: Pull complete Digest: sha256:92695bc579f31df7a63da6922075d0666e565ceccad16b59c3374d2cf4e8e50e Status: Downloaded newer image for hello-world:latest Hello from Docker! This message shows that your installation appears to be working correctly. (以下略)
あと、Docker compose もインストールしておく。
$ sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose $ sudo chmod +x /usr/local/bin/docker-compose $ docker-compose --version docker-compose version 1.24.0, build 0aa59064
デフォルトだと、イメージやコンテナは”/var/lib/docker”に保存される。ルートに200GB少々割り当てているし、そのままでも大丈夫そうな気もするが、増えるのが分かってるファイルをあんまりルートに置きたくないので、変更する。
$ sudo vi /lib/systemd/system/docker.service [Service] Type=notify # the default is not to use systemd for cgroups because the delegate issues still # exists and systemd currently does not support the cgroup feature set required # for containers run by docker ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -g /path/to/docker-dir $ sudo systemctl daemon-reload $ sudo systemctl restart docker $ systemctl status docker ● docker.service - Docker Application Container Engine Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2019-05-06 22:50:50 JST; 3min 19s ago Docs: https://docs.docker.com Main PID: 11550 (dockerd) Tasks: 13 CGroup: /system.slice/docker.service └─11550 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -g /path/to/docker
これで、Docker のサービス再起動して、以前の記事参考に、Wordpress と MySQL のコンテナ立てて、MBPからアクセスしてみた。
version: '3' services: wordpress: image: wordpress:latest container_name: some-wp restart: always ports: - 8081:80 environment: WORDPRESS_DB_HOST: mysql:3306 WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD: wordpress WORDPRESS_DB_NAME: wordpress depends_on: - mysql mysql: image: mysql:5.7 container_name: some-db restart: always environment: MYSQL_ROOT_PASSWORD: wordpress MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD: wordpress
ごくごく簡易的な docker-compose.yaml だが、疎通確認なんでこれで良し。このファイル自体も、MBPのVS Code で弐号機の samba 共有ディレクトリに直接作成し、操作もVS Code のコンソールから行った。
これで 問題無く WordPress と MySQL のコンテナが立ち上がり、MBPのブラウザからアクセスして、WPのインストール画面まで進んだ。