文章目录
- docker介绍
- 应用场景
- 处理
docker介绍
- 简单来说,虚拟化、容器化,各个环境保持一致
-
Docker
是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux
或Windows
操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。 -
Docker CE
是一款开源的容器化平台,允许开发人员和管理员快速构建、部署和运行应用程序,提高应用程序的可移植性和可伸缩性。Docker CE
可以在多种操作系统上运行,包括Windows
、Linux
和MacOS
等 -
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
- 至此安装完毕,有时候自己觉得困难,只是因为不熟悉,不能却步不前。要擅于使用搜索引擎,借鉴前人的智慧。
- 疑问,搜索,学习,总结,分享,形成一个开放的环