1、查看容器内的文件目录
方法1:docker run的时候,以bash进入
比如:docker run -it python:3.9.7(镜像名:镜像tag) /bin/bash
方法2:针对运行中的容器,以docker exec进入
docker exec -it 86b03a059e82(容器名,centos的容器) /bin/bash(command,以bash进入)
2、Jenkins运行时,初始环境清理-包括镜像及容器清理以及上一次测试结果清理
不推荐这种方法:
for i in $(docker images -aq) ; do docker rmi -f $i; done # 镜像清理(慎用)
if [ ! -z $(docker ps -n1 -q) ]; then (docker rm -f $(docker ps -aq)); fi # 容器清理(慎用)说明:
如果容器存在,再进行清理
这种方法更优:
echo "初始环境清理-包括镜像及容器清理以及上一次测试结果清理"
#if [ ! -z $(docker images 10.0.3.229:5000/locust1 -q) ]; then (docker rmi -f $(docker images 10.0.3.229:5000/locust1 -q)); fi
if [ ! -z $(docker ps -f name=locust-master -aq) ]; then (docker rm -f $(docker ps -f name=locust-master -aq)); fi
rm -f berttest_distributed.html
3、Dockerfile -v 两者必须为绝对路径,可通过docker inspect 查看路径映射
说明:如果用户Dockerfile构造的镜像,将一些代码拷贝到镜像的某个路径内,如果用户运行容器的时候,指定挂载目录,则挂载后,容器内被挂载的路径,将不会保留原来的内容,和外部的挂载目录内的内容保持一致。
4、使用Dockerfile生成镜像的时候,出现"build context for docker image very large"
原因是:使用COPY将本地的内容,拷贝到镜像的时候,比如 COPY .(本地) /mnt(镜像内)
会将本地的所有内容拷贝到镜像内,可能本地有.git文件,占用较大的空间,导致打标的镜像很大,此时,可以通过创建.dockerignore放到和Dockerfile同级别的目录下,文件内填写需要忽略的文件,比如.git,一行一个
可以参照:build context for docker image very large - Stack Overflow
5、在Jenkins中,运行docker run时,不能增加选项-t,否则出现报错 “the input device is not a tty”
参照:
docker - Error "The input device is not a TTY" - Stack Overflow
Jenkins: the input device is not a TTY - 互联网开发笔记
6、docker退出删除容器,使用--rm选项
docker run -it --rm centos:latest /bin/bash
在执行docker run的时候如果添加--rm参数,则容器终止后会立刻删除。--rm参数和-d参数不能同时使用