Skip to content
0

Python

Python 为主语言的开源软件

runlike ---> 给出现有容器的运行参数

docker-autocompose 类似,给出现有容器的运行参数,但安装方法要简单地多

$ pip install runlike
$ runlike [容器ID]

还有不同的地方是 runlike 输出 docker run 的参数,而 docker-autocompose 输出的是 docker-compose.yaml 的配置

我这里给出一个输出我的某个 docker 容器的配置作为参考。

$ runlike 84698452793e
docker run \
  --name=nextcloud-1 \
  --hostname=nextcloud-1 \
  --mac-address=02:42:ac:11:00:08 \
  --volume /var/www/html \
  --network=bridge \
  --workdir=/var/www/html \
  -p 5757:80 \
  --log-driver=db \
  --runtime=runc \
  --detach=true \
  -t nextcloud:latest \
  apache2-foreground
$ poetry run autocompose 84698452793e
services:
  nextcloud-1:
    command:
      - "apache2-foreground"
    container_name: "nextcloud-1"
    entrypoint:
      - "/entrypoint.sh"
    environment:
      - "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
      - "PHPIZE_DEPS=autoconf \t\tdpkg-dev \t\tfile \t\tg++ \t\tgcc \t\tlibc-dev \t\tmake \t\tpkg-config\
        \ \t\tre2c"
      - "PHP_INI_DIR=/usr/local/etc/php"
      - "APACHE_CONFDIR=/etc/apache2"
      - "APACHE_ENVVARS=/etc/apache2/envvars"
      - "PHP_CFLAGS=-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
      - "PHP_CPPFLAGS=-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
      - "PHP_LDFLAGS=-Wl,-O1 -pie"
      - "GPG_KEYS=39B641343D8C104B2B146DC3F9C39DC0B9698544 E60913E4DF209907D8E30D96659A97C9CF2A795A 1198C0117593497A5EC5C199286AF1F9897469DC"
      - "PHP_VERSION=8.2.25"
      - "PHP_URL=https://www.php.net/distributions/php-8.2.25.tar.xz"
      - "PHP_ASC_URL=https://www.php.net/distributions/php-8.2.25.tar.xz.asc"
      - "PHP_SHA256=330b54876ea1d05ade12ee9726167332058bccd58dffa1d4e12117f6b4f616b9"
      - "PHP_MEMORY_LIMIT=512M"
      - "PHP_UPLOAD_LIMIT=512M"
      - "APACHE_BODY_LIMIT=1073741824"
      - "NEXTCLOUD_VERSION=30.0.1"
    hostname: "nextcloud-1"
    image: "nextcloud:latest"
    ipc: "private"
    logging:
      driver: "db"
      options: {}
    mac_address: "02:42:ac:11:00:08"
    network_mode: "bridge"
    ports:
      - "5757:80/tcp"
    stdin_open: true
    tty: true
    volumes:
      - "fe261b944392447f79965b27c23490e6e09402ee60a9cfb8310d762fe710eff7:/var/www/html"
    working_dir: "/var/www/html"

version: "3.6"

volumes:
  fe261b944392447f79965b27c23490e6e09402ee60a9cfb8310d762fe710eff7:
    external: true

看得出来,docker-autocompose 的输出更详细和丰富

wttr.in ---> 天气预报

最简单的玩法就是直接通过在命令行中执行 curl wttr.in 命令即可查看当前地区的天气预报

$ curl wttr.in
Weather report: Beijing, China

      \   /     Clear
       .-.      -1(-4) °C      
    ― (   ) ―   7 km/h       
       `-’      10 km          
      /   \     0.0 mm         
                                                       ┌─────────────┐                                                       
┌──────────────────────────────┬───────────────────────┤  Fri 03 Jan ├───────────────────────┬──────────────────────────────┐
│            Morning           │             Noon      └──────┬──────┘     Evening           │             Night            │
├──────────────────────────────┼──────────────────────────────┼──────────────────────────────┼──────────────────────────────┤
    \   /     Sunny          │     \   /     Sunny          │     \   /     Clear          │     \   /     Clear          │
     .-.      -2(-3) °C     .-.      +2(1) °C     .-.      2 °C     .-.      0(-1) °C
  ― (   ) ―   4-5 km/h  ― (   ) ―   4 km/h  ― (   ) ―   1-3 km/h  ― (   ) ―   3-6 km/h
     `-’      10 km     `-’      10 km     `-’      10 km     `-’      10 km
    /   \     0.0 mm | 0%    /   \     0.0 mm | 0%    /   \     0.0 mm | 0%    /   \     0.0 mm | 0%
└──────────────────────────────┴──────────────────────────────┴──────────────────────────────┴──────────────────────────────┘
                                                       ┌─────────────┐                                                       
┌──────────────────────────────┬───────────────────────┤  Sat 04 Jan ├───────────────────────┬──────────────────────────────┐
│            Morning           │             Noon      └──────┬──────┘     Evening           │             Night            │
├──────────────────────────────┼──────────────────────────────┼──────────────────────────────┼──────────────────────────────┤
    \   /     Sunny          │     \   /     Sunny          │     \   /     Clear          │               Overcast       │
     .-.      -1 °C     .-.      3 °C     .-.      3 °C     .--.     2 °C
  ― (   ) ―   3-5 km/h  ― (   ) ―   1-2 km/h  ― (   ) ―   3-5 km/h  .-(    ).   1-2 km/h
     `-’      10 km     `-’      10 km     `-’      10 km (___.__)__)  10 km
    /   \     0.0 mm | 0%    /   \     0.0 mm | 0%    /   \     0.0 mm | 0%    │               0.0 mm | 0%
└──────────────────────────────┴──────────────────────────────┴──────────────────────────────┴──────────────────────────────┘
                                                       ┌─────────────┐                                                       
┌──────────────────────────────┬───────────────────────┤  Sun 05 Jan ├───────────────────────┬──────────────────────────────┐
│            Morning           │             Noon      └──────┬──────┘     Evening           │             Night            │
├──────────────────────────────┼──────────────────────────────┼──────────────────────────────┼──────────────────────────────┤
   \  /       Partly Cloudy  │     \   /     Sunny          │     \   /     Clear          │     \   /     Clear          │
 _ /"".-.     0(-2) °C     .-.      +5(2) °C     .-.      +4(2) °C     .-.      +3(-1) °C
   \_(   ).   7-11 km/h  ― (   ) ―   12-15 km/h  ― (   ) ―   8-14 km/h  ― (   ) ―   13-22 km/h
   /(___(__)  10 km     `-’      10 km     `-’      10 km     `-’      10 km
│               0.0 mm | 0%    /   \     0.0 mm | 0%    /   \     0.0 mm | 0%    /   \     0.0 mm | 0%
└──────────────────────────────┴──────────────────────────────┴──────────────────────────────┴──────────────────────────────┘

docker-autocompose ---> 导出容器的 yaml 配置

从正在运行的容器中导出 docker-compose.yaml 配置,非常利于迁移。例如将已有的正在运行的 docker 容器的管理迁移到 dockge

在群辉 Nas 的安装过程,官方首推的安装方式:

安装 python3/pip3

在群辉的 Package Center 安装 python。而 pip3 的安装需要我们手动进行

$ wget https://bootstrap.pypa.io/get-pip.py
$ python3 get-pip.py
$ pip3 install pyaml # 必要模块
安装 poetry

安装完后,添加 export PATH="/root/.local/bin:$PATH"/etc/profile 中,执行 source /etc/profile 重新加载

$ curl -sSL https://install.python-poetry.org | python3 -
构建项目和使用

克隆项目,安装依赖

$ git clone git@github.com:Red5d/docker-autocompose.git --depth=1
$ cd docker-autocompose/ && poetry install

通过 poetry run autocompose [容器ID] 命令即可查看对应容器生成的 docker-compose.yaml 配置

Released under the MIT License.