Docker以及registry的入门学习安装
一、前言
如果你是数据中心或云计算IT圈子的人,我想你一定听过Docker,关于它们的新闻从未间断过。Docker的发展历程虽然算不上太长,但是自2014年6月Docker 1.0 正式发布,但是Docker确实越来越流行,因为Docker确实很强大。
二、docker是什么
简单来说,Docker是一个由GO语言写的程序运行的“容器”(Linux containers);目前云服务的基石是操作系统级别的隔离,在同一台物理服务器上虚拟出多个主机。Docker则实现了一种应用程序级别的隔离;它改变我们基本的开发、操作单元,由直接操作虚拟主机(VM),转换到操作程序运行的“容器”上来,它可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。
三、docker的优势
l 快:运行时的性能可以获取极大提升,管理操作(启动,停止,开始,重启等等)都是以秒或毫秒为单位的。
l 敏捷:像虚拟机一样敏捷,而且会更便宜。
l 灵活:将应用和系统“容器化”,不添加额外的操作系统。
l 轻量:你会拥有足够的“操作系统”,仅需添加或减小镜像即可。在一台服务器上可以布署100~1000个Containers容器。
l 便宜:开源的,免费的,低成本的。由现代Linux内核支持并驱动。轻量的Container必定可以在一个物理机上开启更多“容器”,注定比VMs要便宜
l 生态系统:正在越来越受欢迎,只需要看一看Google的趋势就知道了。
四、一些docker的应用场景
下面总结一些docker的应用场景,展现docker的优势:
1. 应用打包
在传统的基础设施环境下,为了保证所生成的软件包在其它机器上可正常安装且运行,一般需要在打包之前创建个干净的虚拟机,然后在这个干净的环境下安全各种依赖包,然后执行打包脚本。生成软件包以后,需要再创建一个干净的环境安装、运行这个软件包,来验证是否符合预期。这样做无疑耗时耗力,而且容易漏掉一些依赖关系。通过docker就能很好的解决打包问题,首先“干净的打包环境”很容易准备,docker官方提供的ubuntu、centos等系统镜像天生就能作为纯净无污染的打包环境使用,其次Dockerfile本身能起到文档固化的作用,只要写好Dockerfile,创建好打包镜像,以后就能无限次重复使用这个镜像进行打包。
2. 多版本混合部署
随着产品的不断更新换代,一台服务器上部署多个应用或者同一个应用的多个版本在企业内部非常常见。但一台服务器上部署同一个软件的多个版本,文件路径、端口等资源往往会发生冲突,造成多个版本无法共存的问题。如果用docker,这个问题将非常简单。由于每个容器都有自己独立的文件系统,所以根本不存在文件路径冲突的问题; 对于端口冲突问题,只需要在启动容器时指定不同的端口映射即可解决问题。
3. 升级回滚
一次升级,往往不仅仅是应用软件本身的升级,通过还会包含依赖项的升级。但新旧软件的依赖项很可能是不同的,甚至是有冲突的,所以在传统的环境下做回滚一般比较困难。如果使用docker,我们只需要每次应用软件升级时制作一个新的docker镜像,升级时先停掉旧的容器,然后把新的容器启动。需要回滚时,把新的容器停掉,旧的启动即可完成回滚,整个过程各在秒级完成,非常方便。
4. 内部开发环境
在容器技术出现之前,公司往往是通过为每个开发人员提供一台或者多台虚拟机来充当开发测试环境。开发测试环境一般负载较低,大量的系统资源都被浪费在虚拟机本身的进程上了。docker容器没有任何CPU和内存上的额外开销,很适合用来提供公司内部的开发测试环境。而且由于docker镜像可以很方便的在公司内部分享,这对开发环境的规范性也有极大的帮助。
五、docker以及私库register的安装
以下安装是以10.255.232.90(自己的的linux环境)为示例,这种安装方式主要是离线安装,可以先把所需的安装文件先down下来
先安装docker:
1. cp文件
cp docker文件到/usr/bin
cp docker.socket,docker.service文件到/usr/lib/systemd/system
2. vi /etc/sysconfig/docker
vi /etc/sysconfig/docker
# /etc/sysconfig/docker
#
# Other arguments to pass to the docker daemon process
# These will be parsed by the sysv initscript and appended
# to the arguments list passed to docker -d
other_args='--bip=172.17.42.1/16 --insecure-registry 10.255.232.90:1179 --storage-driver=devicemapper --storage-optdm.datadev=/dev/vg-docker/data --storage-opt dm.metadatadev=/dev/vg-docker/metadata'--bip 为安装docker0 的虚拟IP地址
--insecure-registry 为私库IP地址和端口(非安全模式访问私库)
--storage-driver=devicemapper--storage-opt dm.datadev=/dev/vg-docker/data --storage-optdm.metadatadev=/dev/vg-docker/metadata"
dm.data和dm.medata为docker所需的lv目录。
3. 启动Docker
systemctl daemon-reload
systemctl start docker
systemctl enable docker
4. 检查docker
# systemctl status docker
# docker version
# docker info
Docker安装完成后,安装私库:
1. cp 文件
cp docker_registry_2_delete.tar.gz到/tmp(私库镜像,可以自己下载)
cp start_docker_registry.sh 到/tmp(私库的docker启动脚本,自己写就行)
2. load registry并tag
dockerload -i docker_registry_2_delete.tar.gz
dockertag aad644fcd8cd registry:2
3. 启动registy
#catstart_docker_registry.sh
docker run -d -p1179:1179 --restart=always --name registry -v /opt/docker_registry:/var/lib/registry registry:2
根据安装环境需要,1179端口可做调整。
#./start_docker_registry.sh
4. 检查registry
#docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9b9cd9dba84f docker.io/registry:2 "/bin/registry /etc/d" 13 days ago Up 13 days 0.0.0.0:1179->1179/tcp registry
总结:以上就是本人docker的学习安装过程,若有错误或者纰漏,欢迎批评指正。
Docker以及registry的入门学习安装的更多相关文章
- Hibernate入门学习-安装hibernate插件
最近一直在学习ssh框架,为了更方便hibernate的使用,所以在eclipse下载hibernate插件,安装插件有两种方法 第一种:本地安装 1).插件的官网下载地址:http://tools. ...
- svn学习笔记(1)入门学习----安装及创建运行仓库
学习及使用svn有一段时间了,但是以前学习的时候不怎么用,现在用只是简单的更新上传,又把基本理论忘了.为了以后自己看自己的笔记回忆,特此记录 svn学习博客:http://www.cnblogs.co ...
- Docker入门学习及其安装
1.Docker是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源.Docker可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行的Linux机器 ...
- Docker入门学习
Python爬虫 最近断断续续的写了几篇Python的学习心得,由于有开发经验的同学来说上手还是比较容易,而且Python提供了强大的第三方库,做一个小的示例程序还是比较简单,这不我之前就是针对Pyt ...
- Docker入门学习总结
1. 什么是Docker Docker是一种虚拟化技术,其在容器的基础上进一步封装了文件系统.网络互联.进程隔离等等,从而极大地简化了容器的创建和维护.Docker使用 Google 公司推出的 Go ...
- Docker学习系列(二):Docker三十分钟快速入门(上)
一.背景 最近,Docker技术真是一片火热,它的出现也弥补了虚拟机资源消耗过高的问题,直接让虚拟化技术有了质的飞跃.那么本文我们来聊一聊Docker,和大家一起认识Docker,简单入门Dock ...
- Kubernetes 入门-学习-nginx安装-dashboard安装
一.入门 1.Kubernetes中文社区---http://docs.kubernetes.org.cn/ 2.Kubernetes集群组件: - etcd 一个高可用的K/V键值对存储和服务发现系 ...
- libevent的入门学习-库的安装【转】
转自:https://blog.csdn.net/lookintosky/article/details/61658067 libevent的入门学习-库的安装最近开始接触Linux应用层的东西,发现 ...
- Grunt入门学习之(1) -- 环境安装
Grunt入门学习(1) - 环境安装 这周根据项目需要,在项目的基础上分模块开发了一个小的项目板块,但是在规范组织每个模块的代码和其依赖性时比较麻烦,需要一个项目板块的构建工具.各个模块都包括其对应 ...
随机推荐
- 【马克-to-win】—— 学习笔记
声明 以下学习内容转载自:http://www.mark-to-win.com/ 社区,由马克java社区创始人---"马克-to-win"一人全部独立写作,创作和制作. 非常感谢 ...
- 《c程序设计语言》读书笔记-5.6-指针重写getline等函数
#include <stdio.h> #include <math.h> #include <stdlib.h> #include <string.h> ...
- spring in action 学习笔记五:@Autowired这个注解如何理解
@Autowired这个注解的意思就是自动装配.他把一个bean对象自动装配到另一个对象中.下面的案例证明了spring的自动装配. 定义一个Sixi类.代码如下: package com.qls.a ...
- github的使用简易教程
一.安装git https://git-for-windows.github.io/ git -> git bash 二.配置参数 $ git config --global user.na ...
- 转:Android 的进程与线程总结
当一个Android应用程序组件启动时候,如果此时这个程序的其他组件没有正在运行,那么系统会为这个程序 以单一线程的形式启动一个新的Linux 进程. 默认情况下,同一应用程序下的所有组件都运行再相同 ...
- OpenCV3.1.0+VS2015开发环境配置
摘要: 由于最近AR(增强现实)这个概念非常火爆,各种基于AR的应用及游戏逐渐面向大众,而在AR中最重要的两个技术就是跟踪识别和增强渲染,其中跟踪识别是通过OpenCV这个开源的计算机视觉库来实现的, ...
- SSM+redis整合(mybatis整合redis做二级缓存)
SSM:是Spring+Struts+Mybatis ,另外还使用了PageHelper 前言: 这里主要是利用redis去做mybatis的二级缓存,mybaits映射文件中所有的select都会刷 ...
- Linux应用层的定时器Timer使用详解【转】
转自:http://blog.csdn.net/wwwtovvv/article/details/8601528 版权声明:本文为博主原创文章,未经博主允许不得转载. linux下定时器的使用 -- ...
- django使用mysql的设置与迁移
1.创建数据库 create database django_lianxi charset=utf8; 2.django项目文件夹的setting.py设置 Django项目默认 sqlite3 数据 ...
- VS217下载码云服务器项目
按下图打开VS2017团队资源管理器的管理连接 ,本地GIT存储库下面输入远程GIT存储库URL地址和保存到本地的地址即可将远程项目下载到本地,下载完成后,关闭VS2017重新打开这个项目就可以进行源 ...