# 一、docker 环境配置
Docker 部署需要一个系统为 64 位的 Linux 内核环境,对于 Linux 环境有下面的几个要求:
# Centos 7以上
cat /etc/redhat-release
# 内核版本 3.8以上
uname -r
# 三要素
# 1、旧版本
# 安装docker
yum install docker -y
# 验证是否成功
docker -v
# 启动docker
systemctl start docker.service
# 开机自启
systemctl enable docker.service
docker 镜像加速
vim /etc/docker/daemon.json
# 添加
{
"registry-mirrors":["http://hub-mirror.c.163.com"] # 使用网易镜像
}
# 使配置文件生效
systemctl daemon-reload
systemctl restart docker.service
- 卸载
# 卸载✨旧版本docker
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
# 2、新版本
官方文档:
具体见:https://docs.docker.com/engine/install/centos/
# 设置docker存储库(使用阿里的镜像)
yum install -y yum-utils
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
# 安装docker引擎
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# 验证是否成功
docker --version
docker compose version
# 启动docker
systemctl start docker
# 开机自启
systemctl enable docker
拓展:docker 镜像加速
要注意是的,registry-mirrors 的值可以使用自己的阿里云镜像服务,具体位置如下:
阿里云-容器镜像服务 ACR-管理控制台-镜像工具-镜像加速器
⚠️ 注意:阿里云镜像站存在未同步最新源镜像问题,建议同时配置多个镜像加速器,具体参考Gist (opens new window)
# 编写docker/daemon.json配置文件
mkdir -p /etc/docker
vim /etc/docker/daemon.json
# 添加
{
"registry-mirrors": ["https://7ykbt77s.mirror.aliyuncs.com"]
}
# 使配置文件生效
systemctl daemon-reload
systemctl restart docker
- 卸载
yum remove docker-ce docker-ce-cli containerd.io
rm -rf /var/lib/docker
rm -rf /var/lib/containerd
# 3、自动化
# 官方
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
# 国内
curl -sSL https://get.daocloud.io/docker | sh
# 二、docker 常用命令
# 普通命令
# 查看运行中 Docker 容器资源使用情况
docker stats
# 查看docker compose中创建的网络
docker network ls
docker network inspect 网络id
# docker镜像、容器、数据卷、缓存的🎉统计信息
docker system df
# 1、镜像命令 ✨
# 镜像安装
docker search redis [--limit 5]
docker pull redis[:6.0.8]
# 查看已安装镜像
docker images -a
# 删除已安装镜像
docker rmi -f 镜像ID
docker rmi -f $(docker images -aq)
# 2、容器命令 ✨
- 核心命令
# 构建容器
docker build -t ruoyi-vue:v1.0 .
docker build -t ruoyi-vue:v1.0 -f ./Dockerfile
# 启动容器(it:终端交互窗口、d:守护进程)
docker run -itd --name ruoyi-vue -p 8090:8080 ruoyi-vue:v1.0
# 查看已启动容器
docker ps -a
# 删除已启动容器
docker rm -f 容器ID
docker rm -f $(docker ps -aq)
- 容器交互
# 进入容器(it:终端交互窗口)
docker exec -it ruoyi-vue bash
docker exec -it ruoyi-vue sh
/ # ls
/ # npm install
/ # ……
/ # exit
# 文件传递
docker cp /home/app_code/ruoyi-ui ruoyi-vue:/
- 查看信息
# 错误日志查看
docker logs 容器ID
# 查看详细信息
docker inspect 容器ID
- 容器管理
docker start 容器ID
docker stop 容器ID
docker restart 容器ID
docker kill 容器ID #(强制停止)
# 3、容器备份
# 打包容器
docker export 容器ID > 文件名.tar
# 导入容器
cat 文件名.tar | docker import - 镜像用户/镜像名:镜像版本号
# 4、容器数据卷
提示
-v
指定的目录/文件如果不存在的话,会自动生成
# 1、结构
# --privileged=true这个最好加上
docker run -itd --privileged=true -v /宿主机绝对路径目录:/容器内目录 镜像名
# 【默认情况下容器内是有 rw 可读、可写权限的】
# 2、权限
docker run -itd --privileged=true -v /宿主机绝对路径目录:/容器内目录:ro 镜像名
# 三、docker 远程仓库
# 1、镜像仓库
回顾
在使用 github、gitee 时,我们可以自己部署私有的 GitLab
在使用 Docker Hub、阿里云 时,我们可以自己部署私有的 Docker Registry
Docker Registry 是官方提供的工具,可以用于构建私有镜像仓库
① 安装
# 1、下载
docker pull registry
# 2、启动
docker run -d -p 5000:5000 -v /zzyyuse/myregistry/:/tmp/registry --privileged=true registry
② 使用
# 查看Docker Registry内镜像
curl -XGET http://192.168.111.162:5000/v2/_catalog
- 配置
docker 默认不允许 http 方式推送镜像
vim /etc/docker/daemon.json
# 内容
{
"registry-mirrors": ["https://aa25jngu.mirror.aliyuncs.com"],
"insecure-registries": ["192.168.111.162:5000"]
}
- 推送
# 推送Docker Registry内镜像
docker tag zzyyubuntu:1.2 192.168.111.162:5000/zzyyubuntu:1.2
docker push 192.168.111.162:5000/zzyyubuntu:1.2
- 拉取
docker pull 192.168.111.162:5000/zzyyubuntu:1.2
# 2、镜像构建 🎈
重点
容器层是可写的,镜像层是只读的
Docker 是镜像分层的,支持通过扩展现有镜像,创建新的镜像。
① 在镜像副本上开发
# 【容器层是可写的,镜像层是只读的】
# 容器转镜像(在原有容器上开发)
docker commit -m="提交的描述信息" -a="作者" 容器ID 要创建的目标镜像名:[标签名]
docker images
# 3、镜像发布
关于镜像仓库,国内可以使用阿里云的 ACR 镜像服务平台:本地镜像-发布到阿里云
阿里云官网 ——> 产品 ——> 计算 ——> 容器服务 ——> 容器镜像服务 ACR ——> 管理控制台
# 创建远程镜像仓库
# 进入:个人阿里✨账号-容器镜像服务-个人实例
# 先创建命名空间(类似github账号)
# 然后创建仓库名称(类似github仓库)
# 【最后执行仓库自动生成的脚本(类似于github测试项目)】
- 登录
# 建立连接
docker login --username=[阿里云账号全名] registry.cn-hangzhou.aliyuncs.com
# 【这里服务区域为阿里自动匹配的一个地址,每个人可能不同】
- 使用
docker images # 查看commit的镜像信息
# 2、推送镜像
docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/[命名空间]/[仓库名称]:[镜像版本号] # 仓库名字其实就是自定义镜像的名字
docker push registry.cn-hangzhou.aliyuncs.com/[命名空间]/[仓库名称]:[镜像版本号]
docker images # 查看是否镜像是否push成功(会生成一个远程镜像)
# 3、拉取镜像
docker pull registry.cn-hangzhou.aliyuncs.com/[命名空间]/[仓库名称]:[镜像版本号]
# 4、镜像共享
# 打包镜像
docker save -o 压缩文件名 镜像名:版本号
# 解压镜像
docker load -i 压缩文件名