Docker如何部署

14次阅读
没有评论

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

一 : 概述

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