开箱一个docker

开箱一个docker

1、docker 的出现?

1.1、环境切换配置麻烦

通常我们在开发环境写好代码,打个war/jar包,扔到tomcat下,就算是跑起来了;
但是扔到生产环境就挂了,what?各种错误。。。

1.2、应用之间需要隔离

两个应用运行在一个服务器上,比如一个PHP,一个.NET。
这两个应用各种的依赖软件都安装在同一个服务器上,可能就会造成各种冲突/无法兼容,这可能调试就非常麻烦了。

docker 就是为解决上方问题出现的,一次封装,到处运行。
Linux 容器技术的出现解决了这样的一个问题,而 docker 就是在他的基础上发展过来的。
将应用运行在 docker 容器上面,而docker 容器在任何操作系统上都是一致的,实现了跨平台、跨服务器。

只需要一次配置好环境,切换别的机子上就可以一键部署好,大大简化了操作。

假设:开发环境装了个 redis 3.2 ,运维环境装了 4.2,可是 3.2 运行没问题,但是在 4.2 就不好用了,但是既然开发环境装了 redis 3.2 了,运维就没必要重复装了,开发把 redis 打个镜像,而运维只需要装个 docker 环境,然后把镜像一键部署即可。
放在以前,我们只需要把代码扔给运维,让他去装软件,装不好就启动不了。

话外语:我的好朋友昆少,作为一个运维,每次都要陪开发加班上线项目,而且往往有些时候竟然是环境引起的,毕竟开发本地用的 windows 环境,部署到 linux 就…

一句话概述:解决了运行环境和配置问题软件容器,方便做持续集成并有助于整体发布的容器虚拟化技术。

2、能干吗?

2.1、之前的虚拟机技术:

资源占用多(特别吃内存)、冗余步骤多、启动慢;
虚拟机是一个连硬件都模拟的,比如打印机等等,是分钟级别的,而 docker 是秒级别的

2.2、容器虚拟化技术:

由于前面的虚拟器存在这些缺点,linux 发展处另一种虚拟化技术—linux 容器;
不是模拟一个完整的操作系统,而是对进程进行隔离。
有了容器,可以将软件运行所需要的资源打包一个隔离的容器中,容器与虚拟机不同,不需要捆绑一整套操作系统,只需要软件工作
所需的库资源可设置。

docker 和传统虚拟化方式的不同之处:

  1. 传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需要应用进程。
  2. 容器的应用进程直接运行于宿主的内核,容器没有自己的内核,而且也没有进行硬件虚拟,因此容器更轻便。
  3. 每个容器之间互相隔离,容器有自己的文件系统,容器之间进程不会互相影响,能区分计算资源。
2.3、开发/运维

一次构建、随处运行
更快应用交付和部署、更快升级和扩缩容、更简单的系统运维、更搞笑的计算资源利用

2.4、企业级

新浪、美团、阿里、京东等

3、去哪下?怎么装?

docker.com docker-cn.com

官网?no!

3.1、安装VM

链接:https://pan.baidu.com/s/1c20sYm0ziaRyUsotbp0oOg 提取码:o2m6

3.2、添加docker

链接:https://pan.baidu.com/s/1KwJM_mes51cvl0e0kava5Q 提取码:n34r
解压镜像后,直接执行 vmx 后缀的文件。


点击后,vm 会检测到运行文件类型,自行添加到 “我的计算机”列表:

执行“开启此虚拟机”:

注意:需要在服务里开启 DHCP 服务,该服务用于自动分配 ip,开启该服务才能给虚拟机分配网络

用户名:root 密码:itcast

 

3.4、docker 启动容器

systemctl start docker

3.5、运行容器

mysql
docker run -di --name=tensquare_mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root centos/mysql-57-centos7

--name=数据库名称
-p 3306:3306 端口号
MYSQL_ROOT_PASSWORD=密码

nginx
docker run -p 80:80 --name ngx_demo -d nginx

-p 80:80:将容器的80端口映射到主机的80端口
--name mynginx:将容器命名为mynginx

3.6、部分指令

查看所有的容器:docker images


查看运行:docker ps -a

暂停容器:docker stop 容器id/容器名称

重新启动某一个容器:docker start 容器id/容器名称

 

如果文章有错的地方欢迎指正,大家互相留言交流。习惯在微信看技术文章,想要获取更多的Java资源的同学,可以关注微信公众号:niceyoo

posted @ 2019-05-06 22:20 niceyoo 阅读(...) 评论(...) 编辑 收藏

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/414483.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jedis jedispool Redistemplate

jedis jedispool Redistemplate 整理了之前学习 redis 的笔记,强烈建议看最后总结。 在大型系统数据读请求中,基本上90%都可以通过分布式缓存集群来抗下来,而 Redis 又是分布式缓存集群的主要践行者,因此了解 Redis 是必不可少的…

支付宝支付提示 4006 ISV权限不足,建议在开发者中心检查签约是否已经生效

解决方法非常简单: 1、首先登录支付宝商家中心:https://b.alipay.com/index.htm 查看产品中心,对应功能有木有开通,或者签约开通 2、登录支付宝开放平台:https://open.alipay.com/platform/home.htm 查看应用功能列…

android 自定义相机,Camera,相机遮罩层

实现效果: 实现方法:一个自定义view实现demo 一、自定义相机Camera,无API版本限制 (1)。实现接口 implements SurfaceHolder.Callback private SurfaceView mView;private Camera mCamera; private int cameraId 0;/…

RedisTemplate在项目中的应用

RedisTemplate在项目中的应用 如下主要通去年无聊做的 "涂涂影院后台管理系统" 一个 demo,看 RedisTemplate 的使用。 主要用到地方:视频首页轮播图的获取,以及搜索检索界面,如下图所示: 由于是非maven非sp…

Android 蓝牙开发,搜索蓝牙列表,蓝牙连接,蓝牙通讯

申请打开蓝牙 <!-- 蓝牙权限 --> <uses-permission android:name"android.permission.BLUETOOTH" /> <uses-permission android:name"android.permission.BLUETOOTH_ADMIN" />private final int BLUE_REQUEST_CODE 551; public void s…

jeecg uedit 自定义图片上传路径

jeecg uedit 图片上传配置自定义物理路径&#xff0c;简单描述&#xff1a;我们知道 jeecg 中使用的 uedit 默认图片上传路径为 “当前项目\plug-in\ueditor\jsp\uploadx\日期\图片.png”&#xff0c;但是把图片放在项目中显然是很不友好的&#xff0c;所以我们自定义上传路径。…

了解一下Elasticsearch的基本概念

了解一下Elasticsearch的基本概念 一、前文介绍 Elasticsearch&#xff08;简称ES&#xff09;是一个基于Apache Lucene(TM)的开源搜索引擎&#xff0c;无论在开源还是专有领域&#xff0c;Lucene 可以被认为是迄今为止最先进、性能最好的、功能最全的搜索引擎库。注意&#x…

简单的对象定位与登录实例的简单操作

①元素对应的定位方法&#xff1a; ②登录实例&#xff08;暂不考虑验证环节&#xff09; 注意&#xff1a;在实践过程中出现过&#xff0c;密码输入之后又被清空的情况&#xff0c;应该是被处理过&#xff0c;换个别的简单的登录界面试下看看如果没有出现前面所说的情况&#…

百度OCR文字识别API使用心得 com.baidu.ocr.sdk.exception.SDKError[283604]

百度OCR文字识别API使用心得 com.baidu.ocr.sdk.exception.SDKError[283604] 本文转载自好基友upuptop&#xff1a;https://blog.csdn.net/pyfysf/article/details/77455330 效果图&#xff1a; 如下为文章正文&#xff1a; 最近有个小项目使用到了OCR技术&#xff0c;顺便到网…

Android studio ERROR: Software caused connection abort: recv failed 解决方法

使用Android studio打开kotlin项目时报错&#xff1a;ERROR: Software caused connection abort: recv failed 解决方法&#xff1a;修改三个文件即可 1、修改gradle-wrapper.properties 修改为当前Android studio的gradle版本 2、修改项目build.gradle 修改为当前Android st…

Android获取手机联系人或通讯录的基本信息(如姓名、电话)

1、添加权限 <uses-permission android:name"android.permission.READ_CONTACTS"/> <uses-permission android:name"android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name"android.permission.READ_EXTERNAL…

百度OCR文字识别-Android安全校验

百度OCR文字识别-Android安全校验 本文转载自好基友upuptop&#xff1a;https://blog.csdn.net/pyfysf/article/details/86438769 效果图&#xff1a; 如下为文章正文&#xff1a; 百度OCR接口使用总结&#xff1a;之前总结一下关于百度OCR文字识别接口的使用步骤&#xff08;…

Android vector矢量图应用实例

在drawable文件夹下创建vector.xml文件 <?xml version"1.0" encoding"utf-8"?> <vector xmlns:android"http://schemas.android.com/apk/res/android"android:height"64dp"android:width"64dp"android:viewpo…

Lint found fatal errors while assembling a release target

在打包APK时报错&#xff1a;Lint found fatal errors while assembling a release target Android在debug模式下应用没有问题&#xff0c;但是在打包release版本时出现一下问题&#xff1a; 解决方法&#xff1a; 1、打开app下build文件夹下reports文件夹下的lint-results-rel…

自定义注解-aop实现日志记录

关于注解&#xff0c;平时接触的可不少&#xff0c;像是 Controller、Service、Autowried 等等&#xff0c;不知道你是否有过这种疑惑&#xff0c;使用 Service 注解的类成为我们的业务类&#xff0c;使用 Controller 注解的类就成了请求的控制器&#xff0c;使用 Autowried 注…