# 一、docker 环境配置

  Docker 部署需要一个系统为 64 位的 Linux 内核环境,对于 Linux 环境有下面的几个要求:

# Centos 7以上
cat /etc/redhat-release

# 内核版本 3.8以上
uname -r

# 三要素

转送带 (opens new window)

# 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 压缩文件名
更新于 : 8/7/2024, 2:16:31 PM