docker环境安装
进入linux虚机后,安装docker环境,制作docker镜像并运行,进入运行中的容器,查看挂载的日志或报告
1.安装docker
sudo curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
2.使用docker仓库安装
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3.安装 Docker Engine-Community
sudo yum install docker-ce docker-ce-cli containerd.io
4.启动docker
sudo systemctl start docker
5.验证启动
sudo docker run hello-world
6.设置docker开机自启
sudo systemctl enable docker.service
7.通过dockerfile创建docker镜像(下面会讲解dockerfile的编写)
docker build -t cpsbvt:v1.0 .
docker build -f /path/to/a/Dockerfile .
8.查看docker镜像
docker images
9.运行docker镜像
docker run -it cpsbvt:V1.7
docker run -it -e username='admin' -v /root/report:/home/BVTTest/report cpsbvt:v1.0 ---这个是运行docker时,-e设置了docker的环境变量,-v设置了linux本地和镜像的目录绑定(用于查看日志或报告)
10.进入docker
docker ps --找到对应的容器id
docker exec -it 775c7c9ee1e1 /bin/bash --进入容器
dockerfile编写
制作docker镜像时,先把python项目打包移到linux下,然后编写dockerfile,注意调整WORKDIR和复制代码的路径,这个会影响代码运行的工作目录。编写好dockerfile之后,运行‘docker build -t kmg:v1.0 .’就能生成一个名字为kmg且tag为v1.0的容器镜像
FROM python:3.6-slim
RUN mkdir /home/BVTTest/
WORKDIR /home/BVTTest/test_suite
COPY ./apitest/api/ /home/BVTTest
RUN python3 -m pip install --upgrade pip -i https://pypi.tuna.tsinghua.edu.cn/simple
RUN pip3 install -r /home/BVTTest/requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
ENTRYPOINT ["python3", "/home/BVTTest/test_suite/integration_suite_by_file_release.py"]
dockerfile解释:
- FROM python:3.6-slim --安装指定版本python依赖
- RUN mkdir /home/BVTTest/ --创建docker目录
- WORKDIR /home/BVTTest/test_suite --设置docker运行时的工作目录,这个和本地调试代码设置的的根目录一样,方便通过根目录寻找自己定义的类。不对时,会报错找不到模块名
- COPY ./apitest/api/ /home/BVTTest --复制linux的当前所选目录(./ 是运行docker build命令时的目录)到docker的/home/BVTTest
- RUN python3 -m pip install --upgrade pip --为docker安装pip命令
- RUN pip3 install -r /home/BVTTest/requirements.txt --为docker安装python运行时的依赖包
- ENTRYPOINT --docker run,会执行此命令
docker其他命令
上传容器到仓库:
docker tag engage:v1.2 engage:v2.0.0_rc2 --为已有docker镜像打上tag,相当于复制一遍
docker login -u 账号 -p 密码 docker.xxx.com --登录仓库
docker push docker.xxx.com/tarzan/engage:v2.0.0_rc2 --上传内容到仓库
1.杀死运行的容器:
# docker kill $(docker ps -a -q)
2.删除所有容器:
# docker rm $(docker ps -a -q)
3.强制删除所有镜像:
# docker rmi -f $(docker images -q)
4.删除某个docker镜像(需要docker images查容器id)
# docker rmi dockerid
5.镜像打包
docker save engage:v1.2 | gzip > engage1.2.tar.gz