这篇文章给大家分享的是有关Docker如何部署的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
我们将在 CentOS 7 上演示用 Docker 部署 Spring Boot 程序。
我们需要编译自己的 Docker 镜像, 并运行镜像的容器。
主流的云计算 (PAAS) 平台都支持发布 Docker 镜像。
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 :
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如何部署”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。