• Docker_基础运用


    1 docker的好处

    开箱即用;快速部署;可移植性强;环境隔离

    2 docker的常用命令

    查看系统存在的镜像

    docker images

    网络搜索镜像(镜像名称组成 repository:tag)

    docker search 镜像名称

    拉取镜像下载到本地(镜像名称组成 repository:tag)

    docker pull 镜像名称

    删除镜像(-f 强制删除)

    docker rmi -f 镜像id

    运行 (-d 表示守护进程,后台运行; -p表示端口映射,后面表示容器端口,前面表示物理机端口,物理机端口不能重复)(镜像名称组成 repository:tag)

    当镜像在本地不存在时,该命令会自动从网络上拉取镜像到本地

    docker run -d  -p  物理机端口:容器端口 镜像名称 --name "指定的容器名称"

    查看当前运行的容器

    docker ps

    查看容器内部信息

    docker inspect 容器名称或者容器id

    停止容器

    docker stop 容器名称或者容器id

    启动容器

    docker start 容器名名称

    访问:访问的时候还是按照物理机配置的端口访问。

    3 上传镜像到仓库

    存储镜像的仓库分为私有和公有。

    1) 上传公有的镜像。

    在阿里云上创建镜像仓库(https://www.alibabacloud.com/help/zh/doc-detail/63591.htm)

    通过界面创建仓库的时候会有选择,点击公有

    在本地服务器上登录在阿里云上创建的仓库,需要密码(教程阿里云官网有手册)

    然后打版本,上传

    docker tag 镜像id 仓库地址:[镜像版本号] 
    docker push 镜像id 仓库地址:[镜像版本号] 

    直接拉取镜像

    2) 上传私有的镜像。

    在阿里云上创建镜像仓库(https://www.alibabacloud.com/help/zh/doc-detail/63591.htm)

    通过界面创建仓库的时候会有选择,点击私有

    在本地服务器上登录在阿里云上创建的仓库,需要密码(教程阿里云官网有手册)

    然后打版本,上传

    docker tag 仓库地址:[镜像版本号] 
    docker push 仓库地址:[镜像版本号] 

    在本地服务器上登录在阿里云上创建的仓库,需要密码(教程阿里云官网有手册),然后拉取镜像

    4 自动化部署镜像jenkins(持续构建  制作镜像->拉取镜像->运行)

    5 使用Maven构建Docker镜像

    使用docker的maven插件构建springboot应用

    docker的maven插件可以将springboot打包成镜像,所以将一个应用制作为镜像有很多方式,这是docker的功能,我们可以在IDEA中引入docker的maven插件的方式直接打包为镜像,也可以直接将非docker的maven打包之后的项目放在linux上,用docker进行命令制作镜像。

    官网介绍如下

    https://spring.io/guides/gs/spring-boot-docker/

    1) 简单添加一个springboot应用

    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    @SpringBootApplication
    @RestController
    public class DockerDemoApplication {
    
        @RequestMapping
        public String home() {
            return "Hello Docker World";
        }
    
        public static void main(String[] args) {
            SpringApplication.run(DockerDemoApplication.class, args);
        }
    
    }

    2)  转到localhost:8080以查看您的“Hello Docker World”消息。

    3)  create a Dockerfile in our Spring Boot project

    dockerfile是一系列命令和参数构成的脚本,这些命令应用于基本镜像,最终创建一个新的镜像。

    在项目的根目录下创建一个Dockerfile 文件,右键项目,点击创建。

    输入以下内容

    FROM openjdk:8-jdk-alpine
    VOLUME /tmp
    ARG JAR_FILE
    COPY ${JAR_FILE} app.jar
    ENTRYPOINT ["java","-jar","/app.jar"]

    from 命令:需要一个基础镜像,即openjdk,版本是8-jdk-alpine(springboot的应用的启动需要最基础的java环境)

    volume命令:持久化dcker的工作目录打/tmp目录下

    arg命令:加入的是我们打包后的jar包,即对应pom文件中的写的jar_file标签。

    copy:将本地文件复制到docker容器

    entrypoint: 容器启动时需要的命令

    具体的其他参数可百度dockerfile查看其他参数。

    3 ) 添加maven的配置

    <properties>
       <docker.image.prefix>sunru</docker.image.prefix>
    </properties>
    <build>
    <finalName>demon_docker</finalName>
    <plugins>
    <plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    </plugin>
    <plugin>
    <groupId>com.spotify</groupId>
    <artifactId>dockerfile-maven-plugin</artifactId>
    <version>1.4.9</version>
    <configuration>
    <repository>${docker.image.prefix}/${project.artifactId}</repository>
    <buildArgs>
    <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
    </buildArgs>
    </configuration>
    </plugin>
    </plugins>
    </build>

    4) 构建镜像

    执行 mvn install dockerfile:build

    需要本地有docker环境,否则会构建失败。

    然后通过3 上传镜像到仓库进行镜像上传

  • 相关阅读:
    this,static,执行程序的顺序等等留意点
    PHP 中的 $this, static , self ,parent 等等关键字的总结
    css的继承之width属性(容易忽略)
    SDK和API之间有什么关系呢?
    JDK8下载账号分享
    Google大数据三篇著名论文-中文版
    HBase性能优化方法总结
    Hbase原理解析
    Java多线程
    XMind 是一个全功能的思维导图和头脑风暴软件,为激发灵感和创意而生
  • 原文地址:https://www.cnblogs.com/S-Mustard/p/11373311.html
Copyright © 2020-2023  润新知