资料:http://www.kgc.cn/java/34673.shtml
https://www.cnblogs.com/fangts/p/10299431.html
自动部署:
https://blog.csdn.net/wangfei0904306/article/details/72643456
docker的优势:
1.docker是一个开源的应用容器引擎,让开发者打包他们的应用或依赖进一个轻量级、可移植的虚拟化容器中,然后发布到各个linux平台当中。
2.优势:
1.应用的自动化打包和发布
2.集成自动化测试
3.指令
docker
run
-i:在新容器内指定一个伪终端或终端。
-p:端口
-d:后台启动
4.常用指令
#查看镜像
docker image
#查看容器运行的进程
docker ps
#删除进程
docker image 查看镜像
docker stop 停止进程名
docker rm 删除进程名
#删除镜像
docker rmi
链接地址:[https://www.cnblogs.com/q4486233/p/6482711.html](https://www.cnblogs.com/q4486233/p/6482711.html)
#启动镜像
docker run -d -P(随机分配port) 镜像名
docker run -d -p 0000:0000(第一个为docker暴露给外面的端口号,第二个为内部访问容器的端口) --name(指定容器名称) 镜像名
#指定启动那个版本,不然会启动lastest版本
docker run -d name:version
#获取镜像
docker pull
#寻找镜像
docker search 镜像名
#查看docker地址
docker-machine ip default
#构建镜像,使用dockerfile
ROM openjdk:8-jdk-alpine #使用那个镜像源
VOLUME /tmp #创建一个临时文件甲
ADD demo-docker-0.0.1-SNAPSHOT.war app.war #把打包的文件war构建成app.war丢进构建的镜像容器中
RUN sh -c 'touch /app.war' #运行
RUN echo "Asia/Shanghai" > /etc/timezone
ARG active="prod"
ENV JAVA_OPTS=""
ENV spring.profiles.active="dev"
ENTRYPOINT ["sh", "-c","java -Dspring.profiles.active=prod $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.war"] 运行镜像的操作指令
遇到问题:
1.window环境下无法访问容器的端口解决方法
https://www.cnblogs.com/hypnus-ly/p/8683215.html
2.开放远程端口失败
https://blog.csdn.net/xiangjai/article/details/85218133
3.docker安装vim
https://www.cnblogs.com/river2005/p/8503238.html
4.docker配置nginx
https://blog.csdn.net/qq_34584525/article/details/80295449
5.加入tls
https://blog.csdn.net/alinyua/article/details/81086124
https://blog.csdn.net/lanwp5302/article/details/89358132
springboot 集成docker(插件com.spotify)
备注:无证书版
材料:centos7、简单的springboot项目和idea
springboot的配置
1.构建工具:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.0.1.RELEASE</version>
<configuration>
<!-- 指定该Main Class为全局的唯一入口 -->
<mainClass>com.springcloud.AppEureka</mainClass>
<layout>ZIP</layout>
</configuration>
<executions>
<execution>
<goals>
<!--可以把依赖的包都打包到生成的Jar包中-->
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.4.3</version>
<configuration>
//docker构建的镜像名
<imageName>${命名空间}/${project.artifactId}</imageName>
//docker发布配置文件
<dockerDirectory>src/main/docker</dockerDirectory>
//docker构建路径
<dockerHost>http://xxxx:2375</dockerHost>
//docker构建路径
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
2.配置dockerfile
//依赖java镜像
FROM java:8
//创建tmp卷
VOLUME /tmp
//把target包里面的eureka-1.0-SNAPSHOT.jar 添加到docker容器中,并且命名app.jar
ADD eureka-1.0-SNAPSHOT.jar app.jar
//暴露的接口
EXPOSE 8761
//执行命令
ENTRYPOINT [ "java", "-jar", "/app.jar" ]
3.构建镜像并且发布到docker容器
3.1先清空后打包项目
image.png
3.2构建docker镜像
image.png
3.2启动容器
进入linux环境,查看镜像是否构建成功构建
docker images
在docker容器输入
docker run -p 0000:0000 --name 启动名 镜像名
4.查看是否启动成功
docker ps
5.如果需要访问容器内部则需要开启远程访问
https://blog.csdn.net/xiangjai/article/details/85218133
证书版
1.生成证书
https://blog.csdn.net/alinyua/article/details/81086124
https://blog.csdn.net/lanwp5302/article/details/89358132
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.0.1.RELEASE</version>
<configuration>
<!-- 指定该Main Class为全局的唯一入口 -->
<mainClass>com.springcloud.AppEureka</mainClass>
<layout>ZIP</layout>
</configuration>
<executions>
<execution>
<goals>
<!--可以把依赖的包都打包到生成的Jar包中-->
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.4.3</version>
<configuration>
//docker构建的镜像名
<imageName>${命名空间}/${project.artifactId}</imageName>
//docker发布配置文件
<dockerDirectory>${basedir}${file.separator}src${file.separator}main${file.separator}resources${file.separator}docker</dockerDirectory>
//证书路径
<dockerCertPath>${basedir}${file.separator}src${file.separator}main${file.separator}resources${file.separator}docker</dockerCertPath>
//docker构建路径
<dockerHost>http://xxxx:2375</dockerHost>
//docker构建路径
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
springboot 集成docker(插件io.fabric8)
https://blog.csdn.net/wangfei0904306/article/details/72643456
docker学习
额外linux学习
1.关闭selinux(SELinux(Security-Enhanced Linux) 是[美国国家安全局实现的强制访问控制的实现)
关闭则
vim /etc/selinux/config =>改为disabled
//改完则查看状态
sestatus
网友评论