docker介绍
Docker 是一个开源的应用容器引擎,基于 Go语言 并遵从Apache2.0协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
docker安装
本次安装是基于centos7.0安装
采用yum的安装方式
yum -y install docker
等待安装完成,完成之后查看docker的版本信息。
docker version
出现:Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?原因是没有启动docker服务。
启动docker服务
service docker start
docker安装出现错误排查
当启动docker服务时候可能会出现下图这个错误
可以看见错误信息里面有提示的命令,输入排查
报错信息是 SELinux不支持这个内核上OrthALA2图形驱动程序,所以我们进行编辑docker配置文件
vim /etc/sysconfig/docker
奖原先的 --selinux-enabled 修改为 --selinux-enabled=false 保存退出即可。
再重新启动服务
service docker start或者systemctl start docker
发现服务已经被启动好了。
将springboot项目打包成jar
参考:https://blog.youkuaiyun.com/qq_35618489/article/details/88228360
上传jar到linux服务器上面
上传路径可以自定义
ok,接下来就是创建镜像了。
安装JDK8的镜像
安装JDK8的镜像
docker pull java:8
如果下载很慢,建议使用阿里云的镜像加速器。https://cr.console.aliyun.com/cn-hangzhou/mirrors
在控制台输入上面的加速脚本,每个人都要唯一的加速地址
回车,继续输入上面的 docker pull java:8,下载完成查看docker安装了哪些镜像
docker images
创建Dockerfile文件生成镜像
因为创建镜像文件docker默认必须是:Dockerfile文件
所以在项目的任意位置创建在Dockerfile文件,我创建位置是和上面的jar包一个路径
文件内容是
FROM java:8
COPY springcloud-2.0-eureka-server.jar app.jar
EXPOSE 8010
ENTRYPOINT ["java","-jar","/app.jar","--spring.profiles.active=prod"]
介绍一下参数意思:
- FROM java:8 是指含有jdk1.8的镜像
- COPY springcloud-2.0-eureka-server.jar app.jar 意思是,将当前目录下面的springcloud-2.0-eureka-server.jar复制命名为app.jar,复制后的名字可以自定义。
- EXPOSE 8010 意思就是开放内部端口8100,就是与springboot项目application.yml的项目端口号一致
- ENTRYPOINT ["java","-jar","/app.jar","--spring.profiles.active=prod"] 就是制作镜像完成最后执行的命令,类似如下命令,只不过执行的是拷贝后的app.jar名称
保存文件退出。
使用docker build命令创建镜像
输入命令:
docker build -t sprincloud-eureka-server:1.0 .
注意
- sprincloud-eureka-server名称是自定义的镜像名称
- 自定义名称后面是冒号,:1.0 ,1.0当前版本号,可以自定义,
- 最后空格加上一个点,不然会报错
创建完成查看镜像列表。
创建springboot的docker容器
不知道命令的输入
docker create --help
创建容器
docker create --name eureka -t -p 8100:8100 sprincloud-eureka-server:1.0
参数介绍
- --name 是别名为eureka
- -t 让docker分配一个伪终端并绑定到容器的标准输入上
- -p 8100:8100 是项目的端口号,前面是外部通讯号,后边是项目真实端口号,二者相关联,外部端口可以随意设置,此处设置为一致
- sprincloud-eureka-server:1.0是镜像名称和版本号
启动容器
docker start eureka && docker logs -f eureka
参数介绍
- docker start eureka是启动容器
- && docker logs -f eureka 启动完成之后查看日志,-f 是持续不中断
启动完成之后,在虚拟机外部查看,先关闭防火墙。
systemctl stop firewalld
ok,到此处就打包部署完毕了。