Docker如何部署

这篇文章给大家分享的是有关Docker如何部署的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

洪山网站建设公司创新互联,洪山网站设计制作,有大型网站制作公司丰富经验。已为洪山上千余家提供企业网站建设服务。企业网站搭建\外贸营销网站建设要多少钱,请找那个售后服务好的洪山做网站的公司定做!

一 : 概述

  • 我们将在 CentOS 7 上演示用 Docker 部署 Spring Boot 程序。

  • 我们需要编译自己的 Docker 镜像, 并运行镜像的容器。

  • 主流的云计算 (PAAS) 平台都支持发布 Docker 镜像。

二 : Dockerfile

(一) 介绍

  • Docker 是使用 Dokerfile 文件来编译自己的镜像的。

(二) 指令

  • FROM :指明了当前镜像继承的基镜像

    • 编译当前镜像时会自动下载基镜像

    • 示例 : FROM ubuntu

  • MAINTAINER :(maintainer, 维护者) 指明了当前镜像的作者

    • 示例 : MAINTAINER info

  • RUN :可以在当前镜像上执行 Linux 命令并形成一个新的层

    • RUN /bin/bash -c "echo helloworld"

    • RUN ["/bin/bash", "-c", "echo hello"]

    • RUN 是编译时(build)的动作

    • 示例 : 可有如下两种格式, CMD 和 ENTRYPOINT 也是如此

  • CMD :(command, 命令/指令) 指明了启动镜像容器时的默认行为

    • 一个 Dockerfile 里只能有一个 CMD 指令。CMD 指令里设定的命令可以在运行镜像时使用参数覆盖。

    • CMD 是运行时(run)的动作

    • 示例 : CMD echo "this is a test"

    • 可被 docker run-d image_name echo "this is not a test" 覆盖。

  • EXPOSE :(expose, 暴露) 指明了镜像运行时的容器必需监听指定的端口。

    • 示例 : EXPOSE 8080

  • ENV :(environment, 环境) 可用来设置环境变量

    • 示例 : ENV myName=infoENV myName info

  • ADD :从当前工作目录复制文件到镜像目录中去

    • 示例 : ADD test.txt /mydir/

  • ENTRYPOINT :(entrypoint, 入口点) 让容器像一个可执行程序一样运行, 这样镜像运行时可以像软件一样接收参数执行。

    • ENTRYPOINT 是运行时(run)的动作。

    • 示例 : ENTRYPOINT ["/bin/echo"]

    • 我们可以向镜像传递参数运行 :

      docker run -d image_name "this is not a test"

三 : 安装 Docker

  • 通过下面命令安装 Docker :

    yum install docker

  • 启动 Docker 并保持开机自启 :

    systemctl start docker # 启动docker
    systemctl enable docker # 设置开机启动

四 : 项目目录及文件

  • 新建 Spring Boot 项目, docker-demo, 这个项目很简单, 只修改了入口类, 代码如下 :

    @SpringBootApplication 
    @RestController
    public class DockerDemoApplication { 
        @RequestMapping("/") 
        public String home() { 
            return "Hello Docker!!"; 
        }
    
        public static void main(String[] args) { 
            SpringApplication.run(Ch20dockerApplication.class, args); 
        } 
    }

  • 在 CentOS 7 上的 /var/apps/dockerdemo 目录下放入我们编译好的 dockerdemo 的 jar 包, 如 dockerdemo-0.0.1-SNAPSHOT.jar, 在同级目录下新建一个 Dokcerfile 文件。

  • Dockerfile 文件内容如下 :

    FROM java:8 # 基镜像为Java, 标签(版本)为8
    MAINTAINER info # 作者 info
    # 将我们的 dockerdemo-0.0.1-SNAPSHOT.jar 添加到镜像中, 并重命名为app.jar
    ADD dockerdemo-0.0.1-SNAPSHOT.jar app.jar
    EXPOSE 8080 # 运行镜像的容器, 监听8080端口
    ENTRYPOINT ["java","-jar","/app.jar"] # 启动时运行java -jar app.jar

五 : 编译镜像

  • 在 /var/apps/dockerdemo 目录下执行下面命令, 执行编译镜像 :

    docker build -t info/dockedemo .

  • 其中, info/dockedemo为镜像名称, 我们设置 info 作为前缀, 这也是 Docker 镜像的一种命名习惯。

  • 注意, 最后还有一个 ., 这是用来指明 Dockerfile 路径的, . 表示 Dockerfile 在当前路径下。

  • 这时我们查看本地镜像

    docker images

六 : 运行

  • 通过下面命令运行 :

    docker run -d --name test -p 8080:8080 info/dockerdemo

  • 查看我们当前的容器状态

    docker ps

  • 当前的 CentOS 系统的 ip 为 192.168.25.11, 访问 http://192.168.25.11:8080

感谢各位的阅读!关于“Docker如何部署”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!


网站名称:Docker如何部署
当前地址:http://myzitong.com/article/jshphg.html