docker+harbor

2023年 8月 18日 48.3k 0

docker

2013年诞生,推荐单容器只运行一个程序或进程,形成一个分布式的应用模型。

总结下来就是:docker带来启动流程更快,运行效率较高、资源损耗较小,属于轻量级的服务。

docker的安装

推荐的一键化安装的脚本:

这个脚本很好的解决了安装过程中出现的很多问题,同时,配置了很多的镜像加速器,实现docker pull的加速。

 #!/bin/bash
 Version="20.10.4-3.el7"
 ​
 # 下载docker安装源
 wget -P /etc/yum.repos.d/ https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
 ​
 # 安装docker
 yum -y install docker-ce-$Version || echo -e '33[1;31m安装失败,请检查网络和yum源配置!33[0m'
 ​
 # 使用国内镜像加速
 # 阿里云(需要登录账号分配地址)
 # 网易云 https://vgunv6qp.mirror.aliyuncs.com
 # 腾讯云 https://mirror.ccs.tencentyun.com
 # 中科大 https://docker.mirrors.ustc.edu.cn
 # docker中国 https://registry.docker-cn.com
 mkdir -p /etc/docker
 tee /etc/docker/daemon.json  readme.txt

在此致敬阿里云,提供了镜像,为开发者节省了很多的时间。

所以,现在我们看到我的centos拥有了阿里云的镜像,拥有了这么多常用的工具,我想要保存一份,供内部使用或者日后自己使用怎么办?barbor很好的解决了这个问题。

现在演示怎么上传到harbor的镜像仓库。

 # 生成离线的镜像
 docker save -o centos.tar.gz centos
 # 查看
 ll | grep centos
 ​
 # 加载离线的镜像包
 docker load -i centos.tar.gz
 ​
 # 上传镜像打标签
 docker tag centos:latest xxxxx/test/centos:v1
 docker push xxxx/test/centos:v1

上述的教程存在问题,打包和上传的其实是和官方的镜像一样的,坑!我研究发现:我们需要自己把容器整成新镜像,推送到harbor

 docker commit --author 'shigen' --message 'add tools and mirrors for centos' 89a shigen-centos:v1
 # 查看所有的镜像,已经可以看到了我commit好的
 docker images

现在就是推送了

 # 重新命名一下标签
 docker tag shigen-centos:v1 xxxxx/test/shigen-centos:v1
 docker push xxxxx/test/shigen-centos:v1

在控制台中可以看到上传的进度。在harbor管理页面验证一下:

可以看到上传成功了。

私有仓库的下载

在拉取之前,为了验证效果,我先把本地的全部删除了,包括镜像、容器。

 docker images
 # 确保本地没有任何的镜像和容器
 ocker pull xxxxx/test/shigen-centos:v1

运行容器

 docker run -itd --name shigen-centos-v1 -p 22:22 699 /bin/bash
 docker exec -it 22f /bin/bash
 ​
 cat ~/readme.txt
 yum list installed | grep vim

可以看到可之前的一摸一样啦,OK,大功告成!

一些高级的玩法,或者视频教程,推荐:【老湿基】Docker 必知必会 (1): Harbor 容器镜像托管服务!CVE 自动扫描,上游自动缓存

其它的一些技巧

1. docker镜像开机自启

 docker update xxx --restart=always

2. docker文件的添加

  • 本机文件放到docker容器
 docker filedir xxx:container_dir
  • docker容器文件放到主机
 docker cp 容器名:容器地址 本机地址

3. 查看docker的内存、网络等状况

 docker stats

4. 将容器打包成镜像

 docker commit -m "描述信息" -a "镜像作者" 容器名 镜像名:版本号
 ​
 # 将镜像备份
 docker save 镜像名:版本号 -o xxx.tar
 # 加载镜像
 docker load -i xxx.tar

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论