安装Docker
//安装yum-util、device-mapper-persistent-data、lvm2
//yum-util提供yum-config-manager功能; device-mapper-persistent-data、lvm2是device mapper驱动依赖
# yum install -y yum-utils device-mapper-persistent-data lvm2
//设置yun源
# yum-config-manager --add-repo http://download.docker.com/linux/centos/docker-ce.repo
//查看可用版本
# yum list docker-ce --showduplicates | sort -r
> docker-ce.x86_64 3:20.10.9-3.el7 docker-ce-stable
> docker-ce.x86_64 3:20.10.8-3.el7 docker-ce-stable
> docker-ce.x86_64 3:20.10.7-3.el7 docker-ce-stable
//选择版本安装
# yum install docker-ce-20.10.9-3.el7 -y
//启动docker
# systemctl start docker
# ps -ef | grep docker
> root 1724 1 4 09:29 ? 00:00:00 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
Idea通过插件,实现自动部署
/**
* 1.开启docker的远程访问, 编辑/usr/lib/systemd/system/docker.service
* 2.将 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
* 替换为 ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock
* 3.重新加载配置文件
* 4.重启docker
*/
# vi /usr/lib/systemd/system/docker.service
# systemctl daemon-reload
# systemctl restart docker
通过浏览器访问 “服务器IP:2375/version”,查看相关信息
新建Springboot项目,在pom.xml路径下新建Dockerfile文件,内容如下
# 基础镜像, 使用centos操作系统
FROM centos:7
# 发布者
MAINTAINER zhanghf <f5psyche@163.com>
# 在docker容器构建时创建文件夹
RUN mkdir /usr/local/java
# 将宿主机的文件拷贝到容器中的具体目录
# ADD, 拷贝后自动解压; COPY, 只做拷贝
# 宿主机上的文件路径是Dockerfile的相对路径
# 如果按目前的配置, 则需要在Dockerfile文件所在路径下拥有jdk-8u301-linux-x64.tar.gz压缩包
ADD jdk-8u301-linux-x64.tar.gz /usr/local/java
# 在容器中创建/usr/local/java/jdk1.8.0_301与/usr/local/java/jdk的软连接
RUN ln -s /usr/local/java/jdk1.8.0_301 /usr/local/java/jdk
# 配置jdk环境
ENV JAVA_HOME /usr/local/java/jdk
ENV JRE_HOME ${JAVA_HOME}/jre
ENV CLASSPATH .:${JAVA_HOME}/lib:${JRE_HOME}/lib
ENV PATH ${JAVA_HOME}/bin:$PATH
# 系统编码
ENV LANG=C.UTF-8 LC_ALL=C.UTF-8
#声明一个挂载点, 容器内此路径会对应宿主机的某个文件夹
VOLUME /tmp
#应用构建成功后的jar文件被复制到镜像内, 名字也改成了dockerdemo.jar
ADD target/dockerdemo-1.0-SNAPSHOT.jar dockerdemo.jar
#启动容器时的进程
ENTRYPOINT ["java","-jar","/dockerdemo.jar"]
#暴露8080端口
EXPOSE 8080
配置docker远程连接
编辑运行配置(edit configuration)