🐧

【ubuntu】Dockerでsystemctlを使えるようにする

2023/10/29に公開

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になっているのを確認します。

GitHubで編集を提案

Discussion