一、docker安装
docker安装(Linux)
卸载之前的docker清理环境
sudo yum remove docker
docker-client
docker-client-latest
docker-common
docker-latest
docker-latest-logrotate
docker-logrotate
docker-engine
查看linux信息(确认是否是centos)
lsb_release -a
1、yum包更新到最新
sudo yum update
一、手动安装
1、安装需要的软件包yum-util 提供yum-config-mamager功能,另外两个是devicemapper驱动依赖的
sudo yum install -y yum-utils
2、设置yum源为阿里云(速度更快)
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3、安装docker(docker-ce社区版免费)
yum -y install docker-ce docker-ce-cli containerd.io
4、安装后查看docker版本
docker -v
5、设置ustc镜像站点(指定注册中心地址)
安装完之后这个文件是空的
vim /etc/docker/daemon.json
{
“registry-mirrors”:[“https://docker.mirrors.ustc.edu.cn”]
}
二、脚本安装
1、安装发布版本
curl -fsSL https://get.docker.com -o get-docker.sh -o test-docker.sh
sh get-docker.sh
1.docker命令
1.systemctl status docker
# 查看docker服务状态
2.systemctl start docker
# 开启docker
3.systemctl restart docker
# 重启docker
4.systemctl stop docker
# 停止docker
5.systemctl enable docker.service
# 启动docker.service服务端
6.systemctl enable docker
# 设置开启自动启动
二.镜像命令
1.docker images
# 查看镜像
2.docker pull 镜像名称:版本号(如果不写,默认是latest)
# 拉取镜像
3.sudo docker search 镜像名称
# 在dockerhub中搜索镜像,如果不加sudo,可能权限不足
或者我们将用户添加到docker用户组中
sudo gpasswd -a $USER docker # 将登录用户添加到docker用户组中
newgrp docker # 更新用户组
4.docker pull python:3-alpine
# 拉取python的镜像
5.docker pull jenkins/jenkins:alpine
# 拉取jenkins的镜像
6.docker rmi 镜像名称:版本号/image Id
# 删除镜像
7.docker tag 原镜像名 新镜像名
# 修改镜像名称,会生成一个新的镜像,不会修改原镜像
三.容器命令
1.创建容器
交互式容器(一次性使用)
docker run -it --name py46 jenkins/jenkins:alpine ls -l
docker run -it --name 容器名称:版本号 镜像名称(基于哪个镜像创建的) 命令(登录容器后执行,可写可不写)
特点:
- 命令行退出,容器就会停止掉
- 容器名称不能重复
守护式容器(后台长期运行)
docker run -dit -p 5555:8080 --name wjj-jenkins jenkins/jenkins:alpine
特点:
- 创建完之后容器在后台运行
- 容器名称不能重复
2.删除容器
docker rm container_ID
# 通过容器id删除
3.查看容器
docker ps -a
# 查看运行中的容器
4.查看容器日志
docker logs 容器名称
docker logs wjj-jenkins
# 可以通过这个命令直接查看jenkins的本地密码,来初始化jenkins
5.登录容器
docker exec -it wjj_jenkins /bin/sh
# 通过此命令进入容器,exit退出
6.bash/sh
1.有些镜像在打包的时候,在/bin/bash,而有些在sh,bash不行,换sh
7.开启已创建的容器
docker start container ID
通过容器id启动容器
8.查看容器端口
docker port wjj_jenkins
9.停止容器
docker stop wjj_jenkins
docker kill wjj_jenkins(容器名称/ID)
10查看所有容器的id
docker ps -a -q
11.批量删除所有容器
docker rm -f $(docker ps -a -q)
# 将查询到的所有容器的变量作为变量
12、文件拷贝
1.将宿主机的文件拷贝到容器
docker cp file 容器名称:容器目录
2.将容器的文件拷贝到宿主机
docker cp 容器名称:容器目录文件 宿主机目录
13、数据卷
docker run -dit -v 宿主机目录:容器目录 --name 容器名称 镜像名称
docker run -dit -v /mnt:/mnt --name wjj_python3 python:3-alpine
# 创建容器时将宿主机的根目录下面的mnt目录与容器的根目录下面的mnt目录映射起来,一方做修改,另一方也会变化
实际使用:
将项目代码放在目录中,然后通过命令启动
docker run -it -v /mnt:/mnt --name wjj_python3 python:3-alpine python3 /mnt/test.py
容器的目录如果不存在会自动创建
四、Dockerfile
Dcokerfile 是用来构建镜像的,公共仓库的镜像是没有安装我们运行项目所需的插件的,以Python为例,需要安装unittest,pymysql等依赖包,所以需要我们自己通过Dockerfile来构建适合我们的镜像
#这个Dockerfile作用是打一个python3项目环境
FROM python:3-alpine
WORKDIR /app
ADD . /app
RUN pip3 install -r requirements.txt -i http://mirrors.aliyun.com/pypi/simple/
CMD ["python3", "main.py"]
一、Dockerfile语法规则
1.文件名必须为Dockerfile
2.文件的非注释的第一行必须是FROM
3.一个Dockerfile只做一件事,即构建一个镜像
4.RUN命令越少越好,命令会生成镜像层,多了运行性能降低
5.关键字指令大小写不敏感,但一般关键字为大写
二、构建镜像
1、创建工作目录
在宿主机根目录下创建app目录
mkdir app
2、创建依赖包文件:requirements.txt
- 先查看需要安装的依赖包和版本,生成requirements.txt文件
pip list
# 查看已安装依赖包
pip freeze > requirements.txt
# 在当前目录下将依赖包信息导出到requirements.txt中
2.到创建的APP目录中生成requirements.txt文件,并将导出的requirements.txt中的信息复制到新生成的requirements.txt文件
cd app
# 进入根目录下刚刚创建的app目录
vi requirements.txt
# 将导出的requirements.txt中的信息复制到新生成的requirements.txt文件
unittestreport==1.3.2
openpyxl==3.0.7
ddt==1.4.2
pytest==6.2.2
selenium==3.141.0
pymysql==1.0.2
faker==8.1.0
jsonpath==0.82
BeautifulReport==0.1.3
rsa==4.7.2
pytest-html==3.1.1
allure-pytest==2.9.43
requests-toolbelt==0.9.1
3、创建Dockerfile
vi Dockerfile
# 在APP目录下创建Dockerfile,写入命令
FROM python:3-alpine
WORKDIR /app
ADD . /app
RUN pip3 install -r requirements.txt -i http://mirrors.aliyun.com/pypi/simple/
CMD ["python3", "main.py"]
4、构建镜像
docker build -t=镜像名称:版本号 Dockerfile所在目录的绝对路径
# 一般直接在Dockerfile目录中执行命令,所以命令为
docker build -t=wjj-python3:v1.0 .