Docker部署项目完全使用指南

Docker部署项目完全使用指南
环境准备
 
Docker安装启动
 
检查系统内核是否满足3.10及以上版本:
 
uname -r
 
升级内核软件包:
 
yum update
 
使用yum安装Docker:
 
yum install docker
 
启动Docker:
 
systemctl start docker
 
查看Docker版本:
 
docker -v
 
Java环境安装
 
使用Docker安装Java 8的环境:
 
docker pull java:8
 
Docker远程访问配置
 
打开docker.service文件:
 
vim /lib/systemd/system/docker.service
 
添加监听端口:
 
ExecStart=/usr/bin/dockerd-current -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
 
Docker重启
 
重新加载Docker的配置文件:
 
systemctl daemon-reload
 
重启Docker:
 
systemctl restart docker
 
查看是否存在dockerd-current进程:
 
netstat -tulp
 
使用curl查看Docker的配置是否生效:
 
curl http://127.0.0.1:2375/info
 
IDEA配置Docker
 
在路径File->Settings下打开Docker:
 
配置Docker的路径地址:
 
项目配置
 
配置pom.xml文件
 
在项目的pom.xml文件中添加如下配置:
 
<!-- docker-maven-plugin插件 -->
 
<plugin>
 
<groupId>com.spotify</groupId>
 
<artifactId>docker-maven-plugin</artifactId>
 
<version>1.0.0</version>
 
<!-- 绑定插件在指定的phase上执行 -->
 
<executions>
 
<execution>
 
<id>build-image</id>
 
<!-- 绑定插件在package这个phase上。这样只要执行mvn package,就会自动执行mvn docker:build -->
 
<phase>package</phase>
 
<goals>
 
<goal>build</goal>
 
</goals>
 
</execution>
 
</executions>
 
<configuration>
 
<!-- 指定生成的镜像名称。可以使用项目的名称作为镜像名 -->
 
<imageName>${project.artifactId}</imageName>
 
<!-- 指定标签。这里是可以是镜像的版本 -->
 
<imageTags>
 
<imageTag>latest</imageTag>
 
</imageTags>
 
<!-- 指定项目中Dockerfile文件的路径 -->
 
<dockerDirectory>${project.baseDir}/src/main/resources</dockerDirectory>
 
<!-- 指定远程Docker路径地址 -->
 
<dockerHost>http://192.168.6.66:2375</dockerHost>
 
<!-- 配置复制jar包到Docker容器中的指定目录 -->
 
<resources>
 
<resource>
 
<targetPath>/</targetPath>
 
<!-- 配置jar包所在路径。 这里的路径就是对应项目中的target目录的路径 -->
 
<directory>${project.build.directory}</directory>
 
<!-- 配置需要包含的jar包。 这里对应的就是Dockerfile中添加的文件名 -->
 
<include>${project.build.finalName}.jar</include>
 
</resources>
 
</resources>
 
</configuration>
 
</plugin>
 
配置Dockerfile文件
 
FROM java:8
 
# 挂载目录
 
VOLUME /tmp
 
ADD *.jar app.jar
 
# 暴露端口号
 
EXPOSE 8083
 
ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/app.jar"]
 
Docker配置
 
Maven打包生成Docker镜像
 
依次使用Maven工具栏中的clean和package命令对项目进行打包操作,生成Docker镜像
 
在生成的Docker镜像右击选择Create Container进行Docker镜像配置,配置完成后点击Run启动Docker容器:
 
Docker容器启动完成后效果图如下:
 
根据端口名8083和项目名称oxford访问项目:
 
http://127.0.0.1:8083/oxford
 
总结
 
Linux操作命令
 
查看Linux防火墙状态:
 
service firewalld status
 
关闭Linux防火墙:
 
service firewalld stop
 
Docker操作命令
 
配置Docker开机自启动:
 
systemctl enable docker
 
停止Docker服务:
 
systemctl stop docker
 
启动Docker服务:
 
systemctl start docker
 
查看所有镜像:
 
docker images
 
拉取指定名称的镜像:
 
# :tag是可选值。表示标签。通常为镜像软件的版本,默认为latest
 
docker pull 镜像名:tag
 
删除指定的镜像:
 
docker rmi image-id
 
查看运行中的Docker容器:
 
docker ps
 
查看所有Docker容器,包括运行中的Docker容器和未运行的Docker容器:
 
docker ps -a
 
启动容器:
 
docker start 容器名称/容器ID
 
停止容器:
 
docker stop 容器名称/容器ID
 
删除容器:
 
docker rm 容器ID
 
查看容器日志:
 
docker logs 容器名称/容器ID
 
在指定的Docker容器中运行指定的镜像:
 
# --name表示自定义容器名称。-d表示后台运行
 
docker run --name 自定义容器名称 -d 镜像名称
 
# -p表示主机端口映射到的容器内部端口
 
docker run --name 自定义容器名称 -d 镜像名称 -p 8088:8080

推荐阅读