docker 使用 sytemctl

警告
本文最后更新于 2022-11-25,文中内容可能已过时。

允许一个 Docker container 获取主机的 systemctl 权限。

使用 Docker run

1
2
3
4
5
6
7
8
docker run --name mon.machine -dit \
--privileged=true \
-v /:/mnt \
-v /run/dbus/system_bus_socket:/run/dbus/system_bus_socket:ro \
-v /sys/fs/cgroup:/sys/fs/cgroup:ro \
-p 31022:22 \
--shm-size=20gb \
10.32.111.107:5000/pydev:v1.0 /sbin/init

使用 Docker-compose

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
version: "3"

services:
  mon.machine:
    container_name: mon.machine
    image: 10.32.111.107:5000/pydev:v1.0
    privileged: true
    shm_size: '8gb'
    environment:
      - SSH_AUTH_SOCK=${SSH_AUTH_SOCK}
    volumes:
      - ${SSH_AUTH_SOCK}:${SSH_AUTH_SOCK}
      - /home/william:/mnt
    ports:
      - "22222:22"
    command:
      - /bin/bash
      - -c
      - |
        cat /mnt/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
        git clone git@192.168.1.171:lfang/jobs.git ~/git/jobs
        /usr/sbin/init
    pull_policy: always
    restart: always

这里需要注意:

  1. 配置 privileged: true

  2. command 需要先初始化,然后再执行其他的命令

    1
    2
    3
    4
    5
    6
    7
    8
    
        privileged: true
        command:
          - /bin/bash
          - -c
          - |
            cat /mnt/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
            git clone git@192.168.1.171:lfang/jobs.git ~/git/jobs
            /usr/sbin/init

相关内容

william 支付宝支付宝
william 微信微信
0%