Docker复现RUN命令
如果有这样以一个场景。我使用docker run启动了了一个redis容器,而docker run的参数有很多,由于时间太久,我已经忘记了当初的启动参数,也并没有使用docker-compose这样的编排工具。现在我如何找回此前的启动命令?
我可以使用inspect
命令查看容器的元数据,根据元数据反推出运行的参数。
docker inspect 1cc825a43022
[
{
"Id": "1cc825a430226187c957b18c3006b4e3346cf143f43513ee71647011bbd98cfe",
"Created": "2019-10-12T05:54:40.635365198Z",
"Path": "docker-entrypoint.sh",
"Args": [
"redis-server",
"--appendonly",
"yes"
],
"State": {
"Status": "running",
"Running": true,
"Paused": false,
"Restarting": false,
"OOMKilled": false,
...
但实际使用不是很方便,因为inspect返回的数据实在太多,找到数据后还要手工的反推出启动时的命令,费时又容易出错。这个时候我们可以借助runlike
这个小工具。
runlike
使用python开发,我们直接使用pip安装
pip install runlike
# 安装成功后直接运行,使用`-p`参数可将返回值美观一点
runlike -p 1cc825a43022
docker run \
--name=jolly_mirzakhani \
--hostname=1cc825a43022 \
--env=PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin \
--env=GOSU_VERSION=1.11 \
--env=REDIS_VERSION=4.0.14 \
--env=REDIS_DOWNLOAD_URL=http://download.redis.io/releases/redis-4.0.14.tar.gz \
--env=REDIS_DOWNLOAD_SHA=1e1e18420a86cfb285933123b04a82e1ebda20bfb0a289472745a087587e93a7 \
--volume=/usr/local/docker/data:/data \
--volume=/data \
-p 6379:6379 \
--restart=always \
--detach=true \
redis:4 \
redis-server --appendonly yes
Docker复现RUN命令
https://blog.yjll.blog/post/89a34fac.html