美文网首页
2019-07-18(docker+jekins)

2019-07-18(docker+jekins)

作者: 威先生2018 | 来源:发表于2019-08-02 10:33 被阅读0次

资料: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

相关文章

网友评论

      本文标题:2019-07-18(docker+jekins)

      本文链接:https://www.haomeiwen.com/subject/ylkllctx.html