docker常用命令&springboot整合


docker常用命令&springboot整合

20200524210056

#安装 启动
yum install docker
systemtl start docker
service docker restart
#常用命令
docker start 容器id 
docker stop 容器id

docker images 查看拥有镜像
docker search mysql 搜索mysql镜像=>实际是`hub.docker.com`下搜索 
docker pull nginx 仓库中拉取nginx镜像(默认拉取最新版本)
docker pull nginx:1.7.1 仓库中拉取nginx镜像(指定拉取版本号)
docker run nginx:运行nginx
       -d:让后台不要阻塞住shell指令窗口,后台运行
       -p:指定内外端口映射(外部端口:内部端口)
       -v:将静态文件放在容器外部,修改外部文件后,容器内部文件会跟着变动。或者mysql文件被分到容器外部。
       --name mynginx:取别名
案例:docker run -d -p 80:80 nginx

docker ps:查看正在运行的容器有哪些。加上-a可以查看所有容器
docker exec -it dockerID bash:进入指定镜像id(id前缀几个字符区分开就行)
    exit:退出进入的镜像
docker rm -f dockerID:强制删除容器
docker rmi imageID:删除镜像
docker commit dockerID dockerImageName:根据dockerID生成镜像名为dockerImageName
docker log 容器ID 查看容器日志(主要来查看错误日志)

dockerFile:构建docker的配置文件
    参数:From:(必须),基于什么镜像构建镜像            workdir:shell语句运行在哪个路径下
         copy:当当前宿主主机山该软件copy到镜像中去    run:构建时允许shell语句
         cmd:指定整个镜像启动起来允许的脚本

docker save m2>1.tar 将镜像名为m2的打包成1.tar
docker load m2<1.tar tar文件转镜像

springboot整合

pom.xml文件配置

 <properties>
        <!--项目名 -->
        <docker.image.prefix>demo</docker.image.prefix>
        <!-- docker私服地址 -->
        <docker.registry>hub.sinogoodies.com</docker.registry>
        <!-- 运行main方法入口 -->
        <start-class>com.example.demo.DemoApplication</start-class>
    </properties>

<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>2.0.1.RELEASE</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <includeSystemScope>true</includeSystemScope>
                    <mainClass>${start-class}</mainClass>
                </configuration>
            </plugin>

            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>dockerfile-maven-plugin</artifactId>
                <version>1.4.10</version>
                <configuration>
                    <repository>${docker.registry}/${docker.image.prefix}/${project.artifactId}</repository>
                    <tag>${project.version}</tag>
                    <username>jfl</username>
                    <password>Jfl@6688</password>
                    <buildArgs>
                        <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
                    </buildArgs>
                </configuration>
            </plugin>
        </plugins>
    </build>

Dockerfile文件内容:

#jdk版本
FROM hub.sinogoodies.com/library/centos8-jdk8:v3
EXPOSE 8080
VOLUME /tmp
ARG JAR_FILE
ADD ${JAR_FILE} app.jar
ENTRYPOINT [“java”,”-jar”, “/app.jar”]

使用说明

  • 系统环境变量需要进行配置: DOCKER_HOST=tcp://172.16.2.78:2375
  • Dockerfile文件放在pom.xml同级目录
  • maven->Plugins->dockerfile (bulid和push将项目推送到镜像仓库)

参考资料

  1. https://www.jianshu.com/p/b04f1e7d605e

  2. https://www.cnblogs.com/modprobe/p/6033807.html

  3. https://www.cnblogs.com/feiyujun/p/10798500.html

  4. https://blog.csdn.net/catoop/article/details/90812876

  5. 拓展(maven在settings.xml中存储加密的密码避免密码泄露) https://blog.csdn.net/fragrant_no1/article/details/84335600

  6. docker-maven-plugin使用 https://www.jianshu.com/p/3b91b8958c3e


文章作者: zhaolin.long
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 zhaolin.long !
 上一篇
Typora + PicGo + Gitee 实现markdown图片自动转链,自动上传 Typora + PicGo + Gitee 实现markdown图片自动转链,自动上传
Typora + PicGo + Gitee 实现markdown图片自动转链,自动上传前言 原文链接:https://zhuanlan.zhihu.com/p/102594554 PicGo + Gitee(码云)实现markdown图
2020-06-15
下一篇 
mysql相关博文 mysql相关博文
一条SQL语句在MySQL中如何执行的一 MySQL 基础架构分析1.1 MySQL 基本架构概览下图是 MySQL 的一个简要架构图,从下图你可以很清晰的看到用户的 SQL 语句在 MySQL 内部是如何执行的。 先简单介绍一下下图涉及的
2020-06-15
  目录