制作docker镜像与Docker服务编排

Dockerfile

程序员可以通过Dockerfile制作镜像,在linux中启动变成容器运行

比如:将springboot生成的jar包通过Dockerfile制作成镜像 在inux中启动运行

​ springboot:jar包—》Dockerfile—》镜像—》容器(springboot项目的运行环境)

Docker 镜像原理

镜像原理
在这里插入图片描述

Dockerfile概念及作用

在这里插入图片描述

举例:配置一个

**需求:**定义dockerfile,发布springboot项目

实现步骤:
(1) 上传jar包

将hello项目打成一个可执行的jar包 hello-1.0-SNAPSHOT.jar,把这个jar包上传到linux中

(2) 创建dockerfile文件,文件名my_hello

#1.定义父镜像(定义当前工程依赖的环境):
FROM java:8
#2.定义作者信息(可以省略不写):
MAINTAINER itheima
#3.将jar包添加到容器(将jar包存入镜像中):
ADD hello-1.0-SNAPSHOT.jar hello.jar
#4.指定这个容器对外暴露的端口号
EXPOSE 8888
#5.定义容器启动执行的命令: 当通过此镜像启动容器的时候,执行的命令
ENTRYPOINT [“java”,“-jar”,“/hello.jar”]

(3) 通过dockerfile构建镜像

#通过dockerfile构建镜像:执行这个名称是my_hello的dockerfile文件 -f: from -t: to
docker build -f my_hello -t my_hello_image .
#最后一个点不要忽略

(4) 启动容器

#创建启动容器
docker run -id --name=自定义名称 -p 端口 镜像名称

Docker服务编排

服务编排:批量管理所有容器进行统一启动/统一停止且统一删除

服务编排

微服务架构的应用系统中一般包含若干个微服务,每个微服务一般都会部署多个实例,如果每个微服务都要手动启停,维护的工作量会很大。

  • 要从Dockerfile build image 或者去dockerhub拉取image
  • 要创建多个container
  • 要管理这些container(启动停止删除)

**服务编排:**按照一定的业务规则批量管理容器

Docker Compose(服务编排) 概述

Docker Compose是一个编排多容器分布式部署的工具,提供命令集管理容器化应用的完整开发周期,包括服务构建,启动和停止。使用步骤:

  1. 利用 Dockerfile 定义运行环境镜像
  2. 使用 docker-compose.yml 定义组成应用的各服务
  3. 运行 docker-compose up 启动应用

在这里插入图片描述

安装

安装Docker Compose
# Compose目前已经完全支持Linux、Mac OS和Windows,在我们安装Compose之前,需要先安装Docker。下面我 们以编译好的二进制包方式安装在Linux系统中。(以安装) 
curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
# 查看版本信息 
docker-compose -version
# 设置文件可执行权限 
chmod +x /usr/local/bin/docker-compose
卸载Docker Compose
# 二进制包方式安装的,删除二进制文件即可
rm /usr/local/bin/docker-compose
举例:创建一个

通过docker compose进行容器批量管理:一次性启动三个容器(nginx,tomcat,redis)

步骤:

(1) 定义一个Docker Compose配置文件

  • docker-compose.yml
  • 定义需要的容器
  • 每个容器的配置

(2) 进入docker-compose.yml所在的目执行docker-compose up -d 命令批量执行

开始操作:

(1) 创建docker-compose目录

mkdir ~/docker-compose
cd ~/docker-compose

(2) 定义docker-compose.yml 文件

vi docker-compose.yml 内容如下

version: '3'
services: 
  nginx:
   container_name: my_nginx
   image: nginx
   ports:
    - 80:80
    
  tomcat:
   container_name: my_tomcat
   image: tomcat:8.5
   ports:
    - 8080:8080    
  
  redis:
   container_name: my_redis
   image: redis
   ports:
    - 6379:6379   

(3) 启动容器
在执行命令之前应该把上面的那些容器关闭并且删除
执行此命令的时候,需要和配置文件再同一个目录下

docker-compose up -d

关闭容器并且删除

docker-compose down 

docker与虚拟机比较

不同:

  • 软件在虚拟机中 软件在docker中

  • 容器虚拟化的是操作系统,虚拟机虚拟化的是硬件。

  • 传统虚拟机可以运行不同的操作系统,容器只能运行同一类型操作系统

Docker虚拟机
启动速度秒级分钟级
硬盘使用一般为MB一般为G
CPU/内存消耗
支持数量上百个十几个
可视化管理不成熟成熟

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值