温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Docker如何部署

发布时间:2021-11-18 16:12:53 来源:亿速云 阅读:145 作者:小新 栏目:云计算

这篇文章给大家分享的是有关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如何部署”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

向AI问一下细节
推荐阅读:
  1. docker部署svn
  2. 部署Docker

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI