runlike:通过容器打印启动命令
- 通过pip方式安装
pip install runlike
- 通过容器方式安装(永久别名:配置在~/.bashrc中)
alias runlike="docker run --rm -v /var/run/docker.sock:/var/run/docker.sock assaflavie/runlike"
- 用法:
runlike 容器名/容器id
runlike -p 容器名/容器id
- 示例:runlike -p 会自动换行
[root@zabbix ~]# runlike -p busybox
docker run --name=busybox \
--hostname=4871fc667d13 \
--mac-address=02:42:ac:11:00:02 \
--runtime=runc \
--detach=true \
-t \
87ff76f62d36 \
sh
whaler:通过镜像导出dockerfile
例如想学习研究官方dockerfile写法可直接导出文件,安装方式如runlike一致
- 用法:
whaler 镜像名/镜像id - 示例(可以重定向>*.txt文件查看):
[root@zabbix ~]# whaler 72cc77d99849
Analyzing 72cc77d99849
Docker Version:
GraphDriver: overlay2
Environment Variables
|PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Image user
|User is root
Potential secrets:
|Found match etc/apk/keys/alpine-devel@lists.alpinelinux.org-4a6a0840.rsa.pub Possible public key \.pub$ bef3e43d6b12733deb56143ac0c4e8b6111d216f7d5dcb8cfaffde6fd87082ab/layer.tar
|Found match etc/apk/keys/alpine-devel@lists.alpinelinux.org-5243ef4b.rsa.pub Possible public key \.pub$ bef3e43d6b12733deb56143ac0c4e8b6111d216f7d5dcb8cfaffde6fd87082ab/layer.tar
|Found match etc/apk/keys/alpine-devel@lists.alpinelinux.org-5261cecb.rsa.pub Possible public key \.pub$ bef3e43d6b12733deb56143ac0c4e8b6111d216f7d5dcb8cfaffde6fd87082ab/layer.tar
|Found match etc/udhcpd.conf DHCP server configs dhcpd[^ ]*.conf bef3e43d6b12733deb56143ac0c4e8b6111d216f7d5dcb8cfaffde6fd87082ab/layer.tar
Dockerfile:
CMD ["/bin/sh"]
ARG PINPOINT_VERSION=2.5.4
ARG INSTALL_URL=https://github.com/pinpoint-apm/pinpoint/releases/download/v2.5.4/pinpoint-agent-2.5.4.tar.gz
COPY /build/scripts/configure-agent.sh /usr/local/bin/ # buildkit
usr/
usr/local/
usr/local/bin/
usr/local/bin/configure-agent.sh
RUN |2 PINPOINT_VERSION=2.5.4 INSTALL_URL=https://github.com/pinpoint-apm/pinpoint/releases/download/v2.5.4/pinpoint-agent-2.5.4.tar.gz RUN apk add --update curl bash \
&& chmod a+x /usr/local/bin/configure-agent.sh \
&& mkdir -p /pinpoint-agent \
&& chmod -R o+x /pinpoint-agent \
&& curl -SL ${INSTALL_URL} -o pinpoint-agent.tar.gz \
&& gunzip pinpoint-agent.tar.gz \
&& tar -xf pinpoint-agent.tar --strip 1 -C /pinpoint-agent \
&& rm pinpoint-agent.tar \
&& apk del curl \
&& rm /var/cache/apk/* # buildkit
VOLUME [/pinpoint-agent]
ENTRYPOINT ["/usr/local/bin/configure-agent.sh"]
CMD ["tail" "-f" "/dev/null"]
容器安装命令方式解释
docker run -t --rm -v /var/run/docker.sock:/var/run/docker.sock:ro pegleg/whaler
命令 | 含义 |
---|---|
docker run | 运行一个新容器实例 |
-t 或 --tty | 为容器分配一个伪终端,可以 -itd |
–rm | 停止后自动删除,所以docker ps -a查不到对应容器 |
-v /var/run/docker.sock:/var/run/docker.sock:ro | 将宿主机守护进程套接字挂载至容器相同位置 |
pegleg/whaler | 指定镜像 |
docker守护进程套接字
docker守护进程套接字是一个unix套接字文件,是docker守护进程(dockerd)监听docker api请求的接口。
docker命令行界面(CLI)和其他docker客户端通过该套接字与守护进程进行通信,执行各种docker命令,如构建镜像、运行管理容器。
在docker容器中,文件系统挂载是指将宿主机文件或目录与容器内相关目录进行关联,使得容器可以直接访问宿主机的内容。