尝试下Docker

一.安装linux环境

 

1.首先,官网下一个ubuntu16,这里有desktop版本和server版本,区别就是带不带桌面环境,我们只用命令行操作,选server就行了,性能上也会快一点.

2.安装,使用虚拟机默认安装,傻瓜操作.

3.执行下apt-get update,有报错的话参考https://segmentfault.com/a/1190000010632943,注释下

/etc/apt/sources.list

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

里面的本地源.

4.使用xshell连接, the 有可能报The remote system refused the connection. 原因是没有安装ssh, ps  -e  | grep ssh看一下有没有sshd启动,没有的话apt-get install OpenSSH-server就可以.连接了.

二.安装docker

 

1.执行,目的是安装下证书,下载文件需要的命令工具,软件包等,具体可以查询

apt-get install -y apt-transport-https ca-certificates curl software-properties-common

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

2.添加秘钥

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

3.添加一下docker的库,实际上就是给上面的sources.list添加一个源

add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

4.然后再更新一下,apt-get update

5.下面就可以安装了

apt-get install -y docker-ce
apt-cache madison docker-ce  列出可用版本
apt-get install docker-ce=<VERSION> 安装特定版本

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

6.验证是否启动成功

systemctl status docker 查看启动状态
systemctl start docker  启动命令

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

7.hello world,命令里的hello-world是镜像名称,会先在本地查找,没有的话会去仓库查找,找到了pull下来再运行

docker run hello-world

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

三.构建Spring boot项目镜像

 

1.新建一个spring项目,最简单的就可以了,配置一下docker打包的插件,要用maven

<plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>1.2.0</version>
                <configuration>
                    <imageName>${docker.image.prefix}/${project.artifactId}</imageName>
                    <dockerDirectory>src/main/docker</dockerDirectory>
                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                            <directory>${project.build.directory}</directory>
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                </configuration>
            </plugin>

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

同时,新建一个dockerfile,插件会通过这个去构建镜像

FROM openjdk:8-jdk-alpine
VOLUME /tmp
ADD docker-first-0.0.1-SNAPSHOT.jar app.jar
RUN sh -c 'touch /app.jar'
ENV JAVA_OPTS=""
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

  • FROM ,表示使用 Jdk8 环境 为基础镜像,如果镜像不是本地的会从 DockerHub 进行下载
  • VOLUME ,VOLUME 指向了一个/tmp的目录,由于 Spring Boot 使用内置的Tomcat容器,Tomcat 默认使用/tmp作为工作目录。这个命令的效果是:在宿主机的/var/lib/docker目录下创建一个临时文件并把它链接到容器中的/tmp目录
  • ADD ,拷贝文件并且重命名
  • ENTRYPOINT ,为了缩短 Tomcat 的启动时间,添加java.security.egd的系统属性指向/dev/urandom作为 ENTRYPOINT

2.把项目上传到我们新建的ubuntu环境中,这里要用到ftp,参考https://www.cnblogs.com/zongfa/p/8213488.html

3.安装一下jdk和maven,网上都有教程

 

add-apt-repository ppa:webupd8team/java
 apt-get update
apt-get install oracle-java8-installer

 

apt-get install maven

4.在项目路径下执行 mvn package 打包项目

然后找到jar包 执行 nohup java -jar ***.jar & 运行项目,nohup 和 &使项目运行在后台并且日志打印在nohup中

5.然后执行 mvn package docker:build,会构建一个docker的镜像

6.docker images 查看镜像,会发现配置的 ${docker.image.prefix}/${project.artifactId} 就是镜像的名字

7.启动这个镜像 docker run -p 8080:9527 -t springboot/spring-boot-docker 意思是把本机的8080端口映射到docker容器的9527端口,外部就可以进行访问了.

8.docker ps可以查看本机在跑的容器

9.使用 docker logs CONTAINER_ID 可以查看输出的日志

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值