docker介绍

  • 简单来说,虚拟化、容器化,各个环境保持一致
  • Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的LinuxWindows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
  • Docker CE是一款开源的容器化平台,允许开发人员和管理员快速构建、部署和运行应用程序,提高应用程序的可移植性和可伸缩性。Docker CE可以在多种操作系统上运行,包括WindowsLinuxMacOS
  • Docker-compose是一个用于定义和运行多个Docker容器的工具。它通过一个简单的文本文件来定义容器及其相互之间的依赖关系,然后可以使用单个命令来启动、停止和删除整个容器集合。Docker-compose可以与Docker CE集成,帮助用户管理和部署多个容器应用。它可以自动化应用程序的配置和部署流程,提高了开发效率和运维效率。

应用场景

  • 我们使用的是Spring Cloud微服务架构,我们的服务组件(consul、gateway等)和一些中间件(PostgreSQL、Redis、Kafka等),都直接使用的docker版本
  • 我们的Spring Boot程序服务,也全部使用docker部署,我们使用的是eclipse-temurin:11-jre-focal打包java服务
  • 我们客户网络环境比较复杂,不允许连外网,一般centos7系统里是没有安装docker服务,或者版本非常低,他们自己网里面又没有可用的源去下载或更新
  • 我们需要在离线环境下,去安装docker服务和docker-compose
  • 之前尝试去下载docker-ce需要的几个rpm包安装,结果发现那四五个包是不够用的。它的一个rpm包关联另一个,关联的包可能又需要其他依赖包,感觉有点麻烦
  • 实际上解决后,发现解决方法意外的很简单

处理

  • 首先是docker ce,主要麻烦之处在于不知道需要多少依赖包,搜索之后发现,linux本身就提供了一些搜索依赖的方法
  • 我这里使用的是yumdownloader --resolve docker-ce,它会自动寻找相关依赖,并全部下载下来
  • 我找了centos7镜像包,用virtualBox新建系统导入,在这个比较原始干净的系统里,联网,执行此命令将依赖全部下载下来了
mkdir ~/docker
cd ~/docker
yumdownloader --resolve docker-ce
tar czf ~/docker.tar.gz *
  • docker.tar.gz依赖压缩包,拷贝到U盘,再到客户现场拷贝到某台机子上,使用winscp传输到服务器上,执行命令安装即可
cd ~
mkdir docker
tar xf docker.tar.gz -C ~/docker
cd docker
rpm -ivh --replacefiles --replacepkgs *.rpm
systemctl enable docker.service
systemctl start docker.service
docker -v
  • 可以看到我安装的docker版本Docker version 20.10.21, build baeda1f
  • docker-compose 使用的是提前下载好的,如果你不是CentOS7.9(如CentOS7.5),可以参考这一篇博客,从设置源开始
cd ~
mv docker-compose /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
docker-compose --version
  • 可以看到我的这个docker-compose 版本 docker-compose version 1.23.0, build c8524dc1
  • 至此安装完毕,有时候自己觉得困难,只是因为不熟悉,不能却步不前。要擅于使用搜索引擎,借鉴前人的智慧。
  • 疑问,搜索,学习,总结,分享,形成一个开放的环
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐