SpringBoot实战-Guns项目(发布到docker)

前言

  1. 用自己搭建的git服务器创建一个guns.git仓库,把代码上传到git服务器中,

  2. 在服务器root用户,把公钥上传到git服务器,同时为root用户授权,这样root用户就可以直接拉取代码了

  3. 在/data/www/ git clone git@127.0.0.1:repo/guns.git

Docker概述

  1. 常用命令

    1. docker run 运行一个container

    2. docker ps 列出运行的container

    3. docker build 创建image

    4. docker pull 从Docker-Hub下载image

    5. docker images 列出已经下载的images

    6. docker rm 删除 container

    7. docker commit 保存改动为新的image

    8. docker cp在host与container拷贝文件

    9. docker rmi 删除image

  2. dockfile

    1. FROM 依赖(继承)的image

    2. ADD 相当于cp,把资源复制到容器里,可以依赖于远程资源

    3. ENTRYPOINT 相当于CMD,是一个数组,参数,执行入口

    4. VOLUME 卷

    5. RUN 在容器执行命令

    6. CMD 执行命令

    7. EXPOSE 暴露端口

    8. ENV 设置环境变量

    9. USER 指定用户

    10. MAINTAINER 维护者

    11. WORKDIR 指定路径

  3. volume

  4. 运行

1. docker run -d —name nginx /usr/share/nginx/html nginx   启动name为nginx的nginx image

2. docker inspect nginx  //获取nginx container的信息 

"Mounts": [

            {

                "Type": "volume",

                "Name": "7fd5bc5f4cf838688e39708685071601d892098fb4c8df08aa01819c47c45e7f",

                "Source": "/var/lib/docker/volumes/7fd5bc5f4cf838688e39708685071601d892098fb4c8df08aa01819c47c45e7f/_data",

                "Destination": "/usr/share/nginx/html",

                "Driver": "local",

                "Mode": "",

                "RW": true,

                "Propagation": ""

            }

        ]

这个目录(/var/lib/docker/volumes/7fd5bc5f4cf838688e39708685071601d892098fb4c8df08aa01819c47c45e7f/_data",)如果是mac没有该路径,需要screen 路径加上tty linux不需要 

3. 直接在nginx里面对index.html进行修改

4. nginx exec -it nginx /bin/bash 进到容器去看(如果容器没有运行 可以通过nginx start #id来运行)

4. 查看得到/usr/share/nginx/html容器里面的文件也被更改
1.  docker run -p 8010:80 -d -v $PWD/html:/usr/share/nginx/html/ nginx    外部操作直接影响内部容器       

  2.  docker run -volumes-from  外部变化共享多个容器
  1. responsity仓库

  2. docker-compose 多容器应用

  3. 安装docker

    1. yum install docker

    2. service docker start

    3. systemctl start docker.service

    4. systemctl enable docker.service

    5. 使用Docker中国加速器

vi  /etc/docker/daemon.json

#添加后:

{

    "registry-mirrors": ["https://registry.docker-cn.com"],

    "live-restore": true

}
  1. systemctl restart docker 重启docker

  2. docker version 返回版本信息 正常安装

JDK安装

  1. 之前安装了java环境,执行java命令有返回,执行java -version没返回

  2. 设置/ect/profile JAVA_HOME 为=/usr/lib/jvm/java8-openjdk

  3. 修改之后 source /etc/profile使之生效

  4. java -version有返回

springboot项目设置

  1. 在pom.xml properties设置镜像名称
<properties>

        <docker.image.prefix>springboot</docker.image.prefix>

</properties>
  1. 添加docker插件
<!-- Docker maven plugin -->

                <plugin>

                        <groupId>com.spotify</groupId>

                        <artifactId>docker-maven-plugin</artifactId>

                        <version>1.0.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>

                <!-- Docker maven plugin -->
  1. 在目录src/main/docker穿件Dockerfile文件,内容为
FROM openjdk:8-jdk-alpine

VOLUME /tmp

ADD guns.jar app.jar

ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

项目打包

  1. mvn clean package -Dmaven.test.skip=true打包,会自动下载依赖,比较耗时(去掉测试类,mvn package测试类会报错)

  2. java -jar /target/guns.jar 运行

  3. mvn clean package -Dmaven.test.skip=true docker:build(mvn package docker:build)构建

  4. 构建成功之后docker images 查看已经构建好的镜像

[root@tmlong guns]# docker images

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE

springboot/guns     latest              41a2a2259acf        28 minutes ago      183 MB

docker.io/openjdk   8-jdk-alpine        a3562aa0b991        3 months ago        105 MB
  1. docker run -p 8090:8090 -t springboot/guns 运行镜像

  2. docker ps 查看正在运行的镜像

ONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES

6076ae4e407d        springboot/guns     "java -Djava.secur..."   28 minutes ago      Up 28 minutes       0.0.0.0:8090->8090/tcp   thirsty_mcnulty
  1. 可以正常访问了

备注

  1. centos服务器 root git clone 没有权限,需要ssh-add ~/.ssh/git_root(报Could not open a connection to your authentication agent则 eval ssh-agent -s)

2.No chain/target/match by that name,需要重启docker参考地址

参考

  1. http://www.ityouknow.com/springboot/2018/03/19/spring-boot-docker.html(完整教程)

  2. https://stackoverflow.com/questions/17846529/could-not-open-a-connection-to-your-authentication-agent(ssh-add)

?著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,029评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,238评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事?!?“怎么了?”我有些...
    开封第一讲书人阅读 159,576评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,214评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,324评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,392评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,416评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,196评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,631评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,919评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,090评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,767评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,410评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,090评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,328评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,952评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,979评论 2 351

推荐阅读更多精彩内容