接上一篇, 还是那个小伙伴的问题, 我使用whaler
反推出Dockerfile
之后, 重新build了, 执行run命令需要哪些参数呢? 要不怎么说坑呢? 刚开始我用的docker inspect
, 能看到一些映射和端口的信息, 但是屡清楚这些并且还得自己整理命令费劲啊! 本着我能想到的, 别人肯定也能想到
的原则, 我认为肯定有这样的工具来解决这个问题. 噫, 查了之后还真有, 这个工具名字叫做runlike
这里有一个坑需要规避一下啊, 看了一些推荐用pip安装, 刚开始我也用pip安装, 但是不知道是pip版本的问题还是什么各种报错, 后来发现可以直接使用docker镜像, 安装步骤如下:
# 1. 下载镜像
docker pull assaflavie/runlike
# 2. 启动容器 这里定义了一个别名, 那么直接使用runlike命令就行了
alias runlike="docker run --rm -v /var/run/docker.sock:/var/run/docker.sock assaflavie/runlike"
runlike -p [容器id|容器名]
输出结果如下 (以showdoc为例):
[root@VM-16-4-centos ~]# docker run --name=showdoc \
> --hostname=f613f79bf349 \
> --user=root \
> --mac-address=02:42:ac:11:00:02 \
> --volume=/showdoc_data/html:/var/www/html/ \
> --privileged \
> --workdir=/ \
> --expose=443 \
> -p 4999:80 \
> --expose=9000 \
> --restart=no \
> --runtime=runc \
> --detach=true \
> star7th/showdoc \
> /bin/sh -c 'if [ ! -f "/var/www/html/index.php" ]; then \cp -fr /showdoc_data/html/ /var/www/ ;fi;chmod 777 -R /var/www/ ;(sleep 30 && cd /showdoc_data/mock/ && npm run start) & supervisord'
补充:
-
docker别名的使用
如上面将
docker run
命令, 自定义了一个别名, 这样下次用起来方便, 关于别名的具体用法和注意就不展开了, 小伙伴们自己查一下吧 -
/var/run/docker.sock的作用
docker.sock是docker守护进行的套接字文件, 将这个文件映射到容器内的原因是保证容器内可以直接通过这个套接字和docker守护进程通讯
参考:
https://www.cnblogs.com/zhanghengscnc/p/16898831.html