一. 什么是docker?

docker 是一个开源的应用容器引擎,是一个用于开发,交付和运行应用程序的开放平台。

1. 解决了环境配置问题

2.docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上。

3.容器是完全使用沙箱机制,相互之间不会有任何接口

二. docker 的优点?

1. 快速交付产品,快速部署应用. 就能够将现有的应用部署到其它机器上,从而实现一次打包,多次部署的目的。

2. docker基于镜像可以秒级启动各种容器. 启动docker相当于启动宿主机操作系统上的一个进程,为秒级别。

3.每一种容器都是一个完整的运行环境,容器之间相互隔离. 容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

名词解释:

docker 镜像(Images):docker 镜像是用于创建 Docker 容器的模板,比如 Centos7 系统,win10镜像。

docker 容器(Container): 一个小型的Linux系统.容器是独立运行的一个或一组应用,是镜像运行时的实体。

三.docker安装

1. 设置 Docker 安装仓库

sudo yum-config-manager \--add-repo \http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

2. 安装 Docker

sudo yum install docker-ce docker-ce-cli containerd.io

官方安装文档:https://docs.docker.com/engine/install/centos/

四. 打docker镜像前准备工作

1. 准备一个可运行的应用包

docker-demo-0.0.1-SNAPSHOT.jar  (一个springBoot项目)

发起请求  http://localhost:8090/   输出: Hello World !

2.编写Dockerfile文件

Alpine 操作系统是一个面向安全的轻型 Linux 发行版

docker官方也支持Apline的服务且有jdk与Alpine集成好的镜像

Dockerfile文件如下:

# 基于java镜像创建新镜像
FROM java:8-alpine# 作者
MAINTAINER 12778# 将jar包添加到容器中并更名为app.jar
ADD docker-demo-0.0.1-SNAPSHOT.jar app.jar# 端口
EXPOSE 8080# 运行jar包
ENTRYPOINT ["java","-jar","/app.jar"]

五.部署&发布

1. 上传jar包

scp /Users/sunww/Documents/Docker/docker-demo-0.0.1-SNAPSHOT.jar  root@10.211.55.4:/docker

2.制作镜像

cd /dockerdocker  build -t app .   # -t:指定新镜像名, .:表示Dockfile在当前路径

打镜像的输出的日志如下:

成功提示:Successfully built 7793c98a965e  -----镜像id

使用docker images 查看刚刚打好的镜像文件,如下截图:

3.启动容器

docker run -d -p 8090:8090 app-d:后台运行  -p:公开指定端口号  冒号前面是主机上的端口,冒号后面是容器内部的端口。

容器启动成功,如下图:

使用docker ps 查看刚刚启动的容器,如下截图:

六. 测试验证

发起请求 http://10.211.55.4:8090/   输出:Hello World !

常用命令

镜像
docker rmi 30f3184067bd   删除镜像
docker images 查看镜像容器
运行docker ps,可见所有运行中的容器
启动容器 docker run -d -p 8090:8090 app
停止运行容器(fca333c9ce5f代表容器id)  docker stop fca333c9ce5f
删除容器 docker rm fca333c9ce5
docker logs 2399e3449fd1 (容器id)  查看容器日志进入/退出到容器里面去,控制台
docker exec -it 容器id  /bin/sh
退出容器:exitdocker run hello-world   测试docker是否安装成功

附上我今天分享的docker原文

Docker打包发布相关推荐

  1. 使用Docker打包发布Django应用

    阿里云服务器环境: 系统:CenterOS 7.3 1核2GB 1. 打包本地镜像文件 dockerhub上有django的dockerfile文件 首先在本地的Django文件根目录下创建Docke ...

  2. 使用Docker打包镜像并发布

    1.docker介绍 Docker 是一个开源的应用容器引擎,以镜像的形式进行发布.docker的图标是一个大鲸鱼驮着许多集装箱在海上航行.大鲸鱼就是docker,集装箱就是一个个容器.容器是完全使用 ...

  3. docker镜像内容如何查看_如何快速打通 Docker 镜像发布流程?

    作者 | 菜菜 责编 | 郭芮 YY妹:菜菜哥,我看了一下Docker相关的内容,但是还是有点迷糊. 菜菜:还有哪不明白呢? YY妹:如果我想用Docker实现所谓的云原生,我的项目该怎么发布呢? 菜 ...

  4. 程序员修神之路--打通Docker镜像发布容器运行流程

    菜菜哥,我看了一下docker相关的内容,但是还是有点迷糊 还有哪不明白呢? 如果我想用docker实现所谓的云原生,我的项目该怎么发布呢? 这还是要详细介绍一下docker了 Docker 是一个开 ...

  5. React Native项目自动化打包发布

    今天这篇文章的目的是在rn项目的构建,并不会涉及到rn框架或者使用的讲解,说起构建,特别是前端构建大家应该很快会想到webpack.Grunt. Gulp等.而这些工具在rn项目中就显得有些鸡肋.所以 ...

  6. 如何快速打通 Docker 镜像发布流程?

    作者 | 菜菜 责编 | 郭芮 YY妹:菜菜哥,我看了一下Docker相关的内容,但是还是有点迷糊. 菜菜:还有哪不明白呢? YY妹:如果我想用Docker实现所谓的云原生,我的项目该怎么发布呢? 菜 ...

  7. overlay2 在打包发布流水线中的应用

    背景 自从去年五月份入职后一直在负责公司 PaaS toB 产品的打包发布及部署运维工作,工作性质上有点类似于 Kubernetes 社区的 SIG Release 团队[1].试用期的主要工作就是优 ...

  8. 解决docker打包Eureka注册中心,其他服务无法注册问题

    本文主要是介绍利用docker打包Eureka注册中心,并且发布镜像到服务器,遇到的一个比较坑的问题.主要是服务镜像部署完毕之后,docker容器都能启动,并且也能访问,但是其他服务就是无法注册到注册 ...

  9. Docker打包深度学习项目

    Ubuntu如何用Docker打包深度学习项目?请看这里! docker就不用多介绍了吧 Docker 安装: 没什么好说的,参照官网:https://docs.docker.com/engine/i ...

最新文章

  1. NBT:线虫的工程细菌共生体提高对西方玉米根虫的生防潜力
  2. ICML新研究提出泛化能力评估新指标:直接上向量余弦距离就OK,还开源了相关代码...
  3. no such file or directory AndroidManifest.xml
  4. latex安装包_LaTeX排版入门须知
  5. PHP 文件上传类 FileUpload 高洛峰老师 细说PHP
  6. vue 点击div 获取位置_vue 点击元素滚动到指定位置
  7. 视频图像处理平台对比_对比传统智能结算,戈子视觉结算有了质的改变
  8. 555定时器的应用——施密特触发器
  9. ege管理系统_网上人才管理系统方案
  10. intelx79服务器芯片组,Intel X79 高速芯片组是什么
  11. 虚拟机ip地址怎么设置
  12. 第一节计算机课开场白,老师第一节课的开场白
  13. 苹果手机怎么更换微信视频铃声
  14. 2021大厂Java高级面试题及答案,附面试答案
  15. DS,Enovia,MatrixOne, eMatrix
  16. 0基础学Python有多难?
  17. 了解MVP(最小可行产品) - 以及为什么我更喜欢最早的可测试/可用/可爱
  18. Apache Zeppelin 简单介绍,以及下载地址
  19. NTFS,exFAT,EXT4,MBR,GPT
  20. 接口测试用例设计思想

热门文章

  1. 关联分析——频繁项集的产生之Apriori算法
  2. 【SEO】Meta Keywords: 是什么?怎么用?
  3. 全国大学生电子设计竞赛历届题目
  4. 使用nvm下载node
  5. imindmap11(思维导图软件)绿色版
  6. 全卷积神经网络(FCN)和卷积神经网络(CNN)的主要区别
  7. 2021-05-08北岛李工阅读笔记+廖常初
  8. Postman使用JS脚本实现请求时加密
  9. JavaScript输入输出语句
  10. 婴儿摇铃玩具亚马逊审查要求做CPC认证标准要求