🐧
【ubuntu】Dockerでsystemctlを使えるようにする
ubuntuの公式イメージをビルドしただけだとsystemctlが使えなかったので、使える方法を記述します。
Dockerfileを用意
FROM ubuntu:22.04
RUN apt-get update \
&& apt-get install -y init systemd
apt-get install -y init systemd
でsystemdをインストール済みのイメージにしています
docker-compose.ymlを用意
services:
init-ubuntu:
container_name: my-init-ubuntu
build:
context: .
dockerfile: dockerfile
privileged: true
command: /sbin/init
privileged=true
とすることで特権モードでコンテナを起動し、ホストシステムに対する全ての権限を与えます。
command: /sbin/init
でコンテナの起動時にinitプロセスを起動しておきます。
コンテナを起動して確認
docker-compose up -d
docker-compose exec init-ubuntu bash
systemctl status
systemctl status
コマンドで状態を確認しState: running
になっているのを確認します。
Discussion