测试人员必会的docker秘籍

乙醇 创建于 10 months 之前

最后更新: 10 months 之前

阅读数: 523

收藏先

Docker现在是许多 QA 工程师的常用工具。它用于生产环境和测试环境或两者兼而有之。docker 的文档制作精良,相对容易理解,但有时我们需要一些常用命令来解决问题。

在这里我列举一下对于测试同学来说比较值得去弄明白的docker秘籍。

*如何使用不同的参数运行已经启动的 docker 容器?*

可以用这个工具:https://github.com/lavie/runlike/

使用方法: runlike -p <container_name> ,这样就可以拿到该容器第一次启动时候用的具体命令了。

runlike -p testservice
docker run \
--name=testservice \
--user=test \
--env=KAFKA_HOST=172.17.0.1:9092 \
--env=PATH=/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin \
--env=LANG=en_US.UTF-8 \
--workdir=/home/testapp \
-p 8015:8080 \
--restart=always \
--log-driver=journald \
--runtime=runc \
--detach=true \
myrepo/testservice:master-1374

这时候我们就可以修改一些参数,比如端口号信息,生活变得容易了一些。

*如何在 docker 容器中运行本地 bash 脚本?*

cat local_script.sh | docker exec <container_name> /bin/bash

如何重启或移除所有的容器?

这个技巧非常管用,推荐牢记。

docker stop $(docker ps -a -q) 
docker restart $(docker ps -a -q)

*如何清理旧的 docker 镜像、容器和卷?*

docker system prune -a

*如何过滤 docker ps 命令,以仅获取所需的信息,例如容器名称、状态和镜像?*

docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Image}}"

*如何保存和恢复 docker 容器?*

docker commit -p <CONTAINER_ID> <YOUR_BACKUP_NAME>
docker save -o <CONTAINER_FILE>.tar <YOUR_BACKUP_NAME>
docker load -i <CONTAINER_FILE>.tar

如何将常用的docker命令简化成别名?

如果你是docker的重度用户的话,这个能力非常实用。

dexec() { docker exec -i -t $@ /bin/bash ;}
dlogs()  { docker logs --tail=all -f $@ ;}
dport() { docker port $@ ;}
dvol()  { docker inspect --format '{{ .Volumes }}' $@ ;}
dip()   { docker inspect --format '{{ .NetworkSettings.IPAddress }}' $@ ;}

总结

希望以上的命令会对大家有所帮助。

0