最近在工作中,接手了不少历史遗留的项目,有一些依赖是使用的Docker启动,可以正常使用。但是由于优化服务器资源的缘故,需要将这些依赖迁移到其他服务器,这时候问题出现了。此类依赖都是直接使用docker run启动一个容器运行,没有使用docker-compose这样的编排工具,也没有保存docker run的命令,给迁移造成了麻烦。如果我们无法找到docker run的启动参数,那么迁移完成后,有大概率会出现不一致的情况。
那么,能不能找回之前的run命令呢,答案是可以的。
方法很多,笔者一般使用的是runlike命令来查看。
# yum install -y Python-pip
# pip install runlike
命令安装完成,下面来看一下如何通过runlike命令来找回docker run的启动参数。
# docker run -d -v /data/Nginx:/data/nginx -v /etc/hosts:/etc/hosts -p 8080:80 --name nginx nginx:1.18
# netstat -lntup | grep 8080
tcp6 0 0 :::8080 :::* LISTEN 5357/docker-proxy
# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
76a49h8f017c nginx:1.18 "nginx -g 'daemon of…" 2 seconds ago Up 2 seconds 0.0.0.0:8080->80/tcp nginx
格式:runlike -p <容器名>|<容器ID>
# runlike -p nginx
docker run
--name=nginx
--hostname=76a49h8f017c
--env=PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
--env=NGINX_VERSION=1.18.3
--env=NJS_VERSION=0.3.9
--env='PKG_RELEASE=1~buster'
--volume=/data/nginx:/data/nginx
--volume=/etc/hosts:/etc/hosts
-p 8080:80
--restart=no
--label maintainer="NGINX Docker Maintainers <docker-maint@nginx.com>"
--detach=true
nginx:1.18
nginx -g 'daemon off;'
至此,再也不用担心找不到docker run参数了。
工作中经常遇到此类需求,顺便记录下,供之后翻阅,养成好习惯^_^