一、前言

  通过k8s部署mysql、nacos甚至是自己开发的springboot项目时,第一步是将相应服务的镜像资源包通过docker推送到私服的harbor仓库当中。中间件则需要将镜像load,再重新打标签推送。自己开发的项目则需要将代码打包成jar包,再通过dockerfile将对应的jar包制作成对应的镜像。之后则是通过k8s管理节点拉取对应镜像部署。

二、更换harbor仓库中镜像地址

  docker默认拉取镜像的地址为docker hub官方镜像,为了方便搭建离线环境则需要将daocker拉取镜像的地址换成harbor仓库的地址

 vim /etc/docker/daemon.json
  #添加: 
{ 
"insecure-registries": ["dockerhub.kubekey.local:80"]                 
}

之后重启docker

systemctl restart docker

三、docker登录harbor仓库

使用命令:

docker login dockerhub.kubekey.local -u admin -p Harbor12345

#格式 docker login <harbor仓库地址> -u <用户名> -p <密码>

出现Login Succeeded说明登录成功

四、将镜像重新打标签

像mysql、nacos、redis这些中间件则需要将官方镜像使用load命令加载

docker load  -i mysql_5.7.34.tar

加载过程:

加载后效果如下:

接着是重新打标签:

#使用以下命令
docker tag docker.xuanyuan.me/library/mysql:5.7.34 dockerhub.kubekey.local/tiangang/mysql:5.7.34

#格式
docker tag <当前镜像标签>:<版本号> <harbor仓库对应项目地址>:<版本号>

具体效果如下:

五、将镜像推送到harbor仓库中

使用命令:

docker push dockerhub.kubekey.local/tiangang/mysql:5.7.34

#格式
docker push <镜像标签>:<版本号>

具体效果如下,另外,如果不会推送命令,可以从harbor仓库的提示中获取

六、在master节点增加拉取凭证

首先创建命名空间

kubectl create namespace zhongchuan141

增加harbor镜像拉取凭证(Secret)

kubectl create secret docker-registry harbor-cred \
>   --namespace=zhongchuan141 \
>   --docker-server=dockerhub.kubekey.local \
>   --docker-username=admin \
>   --docker-password=Harbor12345

七、相关命令

重启harbor仓库

在harbor仓库目录执行

docker-compose down -v
docker-compose up -d

docker基础命令

docker version

            info

            search <镜像名>

            pull <镜像名:标签>

            images

            rm 删除容器

            rmi -f 删除镜像

            run [参数] <镜像名:标签> [容器内执行的命令]

  • -d:后台运行容器(守护进程模式)。

  • -p:端口映射(宿主机端口:容器内端口),如 -p 8080:80 表示宿主机 8080 端口映射到容器 80 端口。

  • --name:给容器指定名称(否则自动生成)。

  • -it:交互式运行(可进入容器终端),通常搭配 /bin/bash 或 /bin/sh 使用。

  • --rm:容器停止后自动删除(临时测试用)。

  • -v:数据卷挂载(宿主机目录:容器内目录),如 -v /data:/app 表示宿主机 /data 目录映射到容器 /app 目录(持久化数据)。

             ps [-a | -l ]

             start | restart | stop

             exec -it mynginx /bin/bash 进入容器内部

             logs <容器ID/容器名> --tail 100 mysql

             inspect <容器ID/容器名>

             system prune -f # 强制清理(不提示确认)

             status 显示容器资源占用

             save -o <保存路径/文件名.tar> <镜像名:标签>

             load -i <tar文件路径>

  • 镜像核心流程:search(搜索)→ pull(拉取)→ images(查看)→ rmi(删除)→ build(构建)。

  • 容器核心流程:run(创建启动)→ ps(查看)→ exec(进入)→ logs(日志)→ stop(停止)→ rm(删除)。

更多推荐