Docker工具:runlike whaler

runlike简介

runlike是一款能通过容器打印出容器的启动命令的产品
github地址:https://github.com/lavie/runlike

whaler 简介

whaler是一款能通过容器打印出容器的Dockerfile的产品
github地址: https://github.com/P3GLEG/Whaler

runlike安装及使用

安装方式一

通过pip命令安装

# pip 安装
pip install runlike

# runlike 后跟容器名或id查询
runlike 

# 再跟 -p 参数可以自动分行,便于查看
runlike -p 

安装方式二

为了简单快捷作者提供了docker版本的方式

# 别名
alias runlike="docker run --rm -v /var/run/docker.sock:/var/run/docker.sock assaflavie/runlike"

# 查询
runlike -p 

runlike使用

语法

Usage: runlike [OPTIONS] [CONTAINER]

   显示运行现有Docker容器副本的必要命令行

Options:
  --no-name     不在输出中包括容器名称
  -p, --pretty
  -s, --stdin
  --help         显示此信息并退出。

案例

[root@VM-12-13-centos ~]# docker ps
CONTAINER ID   IMAGE              COMMAND                  CREATED      STATUS      PORTS                               NAMES
4cfc7863407c   wordpress:latest   "docker-entrypoint.s…"   8 days ago   Up 8 days   0.0.0.0:80->80/tcp, :::80->80/tcp   my_wordpress-wordpress-1
e87d0ef2032c   mysql:5.7          "docker-entrypoint.s…"   8 days ago   Up 8 days   3306/tcp, 33060/tcp                 my_wordpress-db-1
[root@VM-12-13-centos ~]# runlike -p e87d0ef2032c
docker run \
	--name=my_wordpress-db-1 \
	--hostname=e87d0ef2032c \
	--env=MYSQL_USER=wordpress \
	--env=MYSQL_PASSWORD=wordpress \
	--env=MYSQL_ROOT_PASSWORD=somewordpress \
	--env=MYSQL_DATABASE=wordpress \
	--env=PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin \
	--env=GOSU_VERSION=1.12 \
	--env=MYSQL_MAJOR=5.7 \
	--env=MYSQL_VERSION=5.7.36-1debian10 \
	--volume=/var/lib/mysql \
	--network=my_wordpress_default \
	--expose=3306 \
	--expose=33060 \
	--restart=always \
	--label='com.docker.compose.config-hash=b1baa84e6b1740710aae0373da116ee38a8503089191c4b673171b5d8f515e5b' \
	--label='com.docker.compose.image=sha256:c20987f18b130f9d144c9828df630417e2a9523148930dc3963e9d0dab302a76' \
	--label='com.docker.compose.version=2.17.0' \
	--label='com.docker.compose.project=my_wordpress' \
	--label='com.docker.compose.project.config_files=/home/my_wordpress/docker-compose.yaml' \
	--label='com.docker.compose.container-number=1' \
	--label='com.docker.compose.depends_on=' \
	--label='com.docker.compose.project.working_dir=/home/my_wordpress' \
	--label='com.docker.compose.oneoff=False' \
	--label='com.docker.compose.service=db' \
	--runtime=runc \
	mysql:5.7 \
	mysqld
[root@VM-12-13-centos ~]# runlike -s e87d0ef2032c
docker run --name=my_wordpress-db-1 --hostname=e87d0ef2032c --env=MYSQL_USER=wordpress --env=MYSQL_PASSWORD=wordpress --env=MYSQL_ROOT_PASSWORD=somewordpress --env=MYSQL_DATABASE=wordpress --env=PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin --env=GOSU_VERSION=1.12 --env=MYSQL_MAJOR=5.7 --env=MYSQL_VERSION=5.7.36-1debian10 --volume=/var/lib/mysql --network=my_wordpress_default --expose=3306 --expose=33060 --restart=always --label='com.docker.compose.service=db' --label='com.docker.compose.container-number=1' --label='com.docker.compose.depends_on=' --label='com.docker.compose.oneoff=False' --label='com.docker.compose.image=sha256:c20987f18b130f9d144c9828df630417e2a9523148930dc3963e9d0dab302a76' --label='com.docker.compose.config-hash=b1baa84e6b1740710aae0373da116ee38a8503089191c4b673171b5d8f515e5b' --label='com.docker.compose.project=my_wordpress' --label='com.docker.compose.project.working_dir=/home/my_wordpress' --label='com.docker.compose.project.config_files=/home/my_wordpress/docker-compose.yaml' --label='com.docker.compose.version=2.17.0' --runtime=runc mysql:5.7 mysqld

注意:runlike只能输出运行的docker 启动命令

whaler安装及使用

安装

通过别名的方式

# 设置别名
alias whaler="docker run -t --rm -v /var/run/docker.sock:/var/run/docker.sock:ro pegleg/whaler"

# 查询
whaler 

# 将docker客户端ID设置为特定版本
whaler -sV=1.36 

使用

[root@VM-12-13-centos ~]# whaler mysql
Unable to find image 'pegleg/whaler:latest' locally
latest: Pulling from pegleg/whaler
df20fa9351a1: Pull complete 
5bef82ae6286: Pull complete 
Digest: sha256:7b8fec82c8d09ba1a4da54e50b5a831a304681a13c17cb2abf10849878e86a73
Status: Downloaded newer image for pegleg/whaler:latest
latest: Pulling from library/mysql
72a69066d2fe: Already exists 
93619dbc5b36: Already exists 
99da31dd6142: Already exists 
626033c43d70: Already exists 
37d5d7efb64e: Already exists 
ac563158d721: Already exists 
d2ba16033dad: Already exists 
688ba7d5c01a: Pull complete 
00e060b6d11d: Pull complete 
1c04857f594f: Pull complete 
4d7cfa90e6ea: Pull complete 
e0431212d27d: Pull complete 
Digest: sha256:e9027fe4d91c0153429607251656806cc784e914937271037f7738bd5b8e7709
Status: Downloaded newer image for mysql:latest
Analyzing mysql
Docker Version: 20.10.7
GraphDriver: overlay2
Environment Variables
|PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
|GOSU_VERSION=1.12
|MYSQL_MAJOR=8.0
|MYSQL_VERSION=8.0.27-1debian10

Open Ports
|33060
|3306

Image user
|User is root

Potential secrets:
Dockerfile:
CMD ["bash"]
RUN groupadd -r mysql  \
	&& useradd -r -g mysql mysql
RUN apt-get update  \
	&& apt-get install -y --no-install-recommends gnupg dirmngr  \
	&& rm -rf /var/lib/apt/lists/*
ENV GOSU_VERSION=1.12
RUN set -eux; savedAptMark="$(apt-mark showmanual)"; apt-get update; apt-get install -y --no-install-recommends ca-certificates wget; rm -rf /var/lib/apt/lists/*; dpkgArch="$(dpkg --print-architecture | awk -F- '{ print $NF }')"; wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch"; wget -O /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$dpkgArch.asc"; export GNUPGHOME="$(mktemp -d)"; gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4; gpg --batch --verify /usr/local/bin/gosu.asc /usr/local/bin/gosu; gpgconf --kill all; rm -rf "$GNUPGHOME" /usr/local/bin/gosu.asc; apt-mark auto '.*' > /dev/null; [ -z "$savedAptMark" ] || apt-mark manual $savedAptMark > /dev/null; apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; chmod +x /usr/local/bin/gosu; gosu --version; gosu nobody true
RUN mkdir /docker-entrypoint-initdb.d
RUN apt-get update  \
	&& apt-get install -y --no-install-recommends pwgen openssl perl xz-utils  \
	&& rm -rf /var/lib/apt/lists/*
RUN set -ex; key='A4A9406876FCBD3C456770C88C718D3B5072E1F5'; export GNUPGHOME="$(mktemp -d)"; gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key"; gpg --batch --export "$key" > /etc/apt/trusted.gpg.d/mysql.gpg; gpgconf --kill all; rm -rf "$GNUPGHOME"; apt-key list > /dev/null
ENV MYSQL_MAJOR=5.7
ENV MYSQL_VERSION=5.7.36-1debian10
RUN echo 'deb http://repo.mysql.com/apt/debian/ buster mysql-5.7' > /etc/apt/sources.list.d/mysql.list
RUN { echo mysql-community-server mysql-community-server/data-dir select ''; echo mysql-community-server mysql-community-server/root-pass password ''; echo mysql-community-server mysql-community-server/re-root-pass password ''; echo mysql-community-server mysql-community-server/remove-test-db select false; } | debconf-set-selections  \
	&& apt-get update  \
	&& apt-get install -y mysql-server="${MYSQL_VERSION}"  \
	&& find /etc/mysql/ -name '*.cnf' -print0 | xargs -0 grep -lZE '^(bind-address|log)' | xargs -rt -0 sed -Ei 's/^(bind-address|log)/#&/'  \
	&& echo '[mysqld]\nskip-host-cache\nskip-name-resolve' > /etc/mysql/conf.d/docker.cnf  \
	&& rm -rf /var/lib/apt/lists/*  \
	&& rm -rf /var/lib/mysql  \
	&& mkdir -p /var/lib/mysql /var/run/mysqld  \
	&& chown -R mysql:mysql /var/lib/mysql /var/run/mysqld  \
	&& chmod 1777 /var/run/mysqld /var/lib/mysql
VOLUME [/var/lib/mysql]
COPY file:345a22fe55d3e6783a17075612415413487e7dba27fbf1000a67c7870364b739 in /usr/local/bin/
	usr/
	usr/local/
	usr/local/bin/
	usr/local/bin/docker-entrypoint.sh

RUN ln -s usr/local/bin/docker-entrypoint.sh /entrypoint.sh # backwards compat
ENTRYPOINT ["docker-entrypoint.sh"]
EXPOSE 3306 33060
CMD ["mysqld"]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值