EC2 上の Amazon Linux 2 は systemd を使いますが、Docker Hub にある amazonlinux
公式イメージ https://hub.docker.com/_/amazonlinux/ のデフォルト状態では systemd が利用できません。
Dockerfile
FROM amazonlinux:2
RUN yum -y update && yum -y install procps systemd-sysv
CMD ["/sbin/init"]
docker-compose.yml
version: "2"
services:
amzn:
build: "."
cap_add:
- SYS_ADMIN
volumes:
- /sys/fs/cgroup:/sys/fs/cgroup:ro
このほかに privileged: true
や security_opt: - seccomp:unconfined
が必要という記事もみかけますが、現在は不要になっているようです。(2019年6月現在)
また、Mac 本体には /sys/fs/cgroup
は存在しませんが、こちらも問題ないようです。
以下のように起動できます。
docker-compose build
docker-compose up -d
docker-compose exec amzn bash
docker-compose exec amzn systemctl -all
docker-compose exec amzn journalctl -f
systemctl や journalctl が使えるようになりました。