通过docker,部署SpringCloud项目
在虚拟机(CentOS)中安装启动docker
-
一般情况下载CentOS中我们通过yum命令安装软件, 但是在测试或开发环境中 Docker 官方为了简化安装流程,提供了一套便捷的安装脚本,CentOS 系统上可以使用这套脚本安装:
$ curl -fsSL get.docker.com -o get-docker.sh $ sudo sh get-docker.sh --mirror Aliyun
执行这个命令后,脚本就会自动的将一切准备工作做好,并且把 Docker CE 的 Edge 版本安装在系统中。
-
启动 Docker CE
$ sudo systemctl enable docker $ sudo systemctl start docker
-
建立 docker 用户组
默认情况下,docker 命令会使用 Unix socket 与 Docker 引擎通讯。而只有 root 用户和 docker 组的用户才可以访问 Docker 引擎的 Unix socket。出于安全考虑,一般 Linux 系统上不会直接使用 root 用户。因此,更好地做法是将需要使用 docker 的用户加入 docker 用户组。$ sudo groupadd docker
将当前用户加入 docker 组:
$ sudo usermod -aG docker $USER
退出当前终端并重新登录,进行如下测试。
-
测试 Docker 是否安装正确
$ docker run hello-world Unable to find image 'hello-world:latest' locally ....
若能正常输出以上信息,则说明安装成功。
-
镜像加速
我使用的是阿里云的镜像,地址为阿里云镜像加速 -
添加内核参数
默认配置下,如果在 CentOS 使用 Docker CE 看到下面的这些警告信息:WARNING: bridge-nf-call-iptables is disabled WARNING: bridge-nf-call-ip6tables is disabled
请添加内核配置参数以启用这些功能。
$ sudo tee -a /etc/sysctl.conf <<-EOF net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 EOF
然后重新加载 sysctl.conf 即可
$ sudo sysctl -p
将项目制作成镜像, 并使用docker compose 启动(以SpringCloud-Config项目为例)
在创建SpringCloud-Config文件夹,并将打包好的项目复制到改文件夹下,并创建一个docker文件夹
cd docker #进入docker文件夹
cp ./springcloud-config.jar . #复制jar包到docker文件夹下
vi Dockerfile #创建编写Dockerfile, 下面一段为Dockerfile基本内容
# FROM openjdk:8-jre
# RUN mkdir /app
# COPY springcloud-config-1.0.0-SNAPSHOT.jar /app/
# CMD java -jar /app/springcloud-config-1.0.0-SNAPSHOT.jar
# EXPOSE 8888
vi docker-compose.yml #创建编写docker-compose.yml文件, 下面一段为yml基本内容
#version: '3.1'
#services:
#springcloud-config:
#restart: always
#image: springcloud-config
#container_name: springcloud-config
#ports:
#- 8888:8888
docker build -t springcloud-config # 创建镜像
docker-compose up #启动镜像