docker 实践一:简介和安装
docker 的简介
docker 绝对是这几年来的重量级开源软件,它是使用 Go 实现的开源容器项目,分属于虚拟化技术。
docker 和 虚拟机
docker 作为一种轻量级的虚拟化方式,在运行应用上和传统的虚拟机方式有许多的优势。
- 启动、停止快
- 对系统资源占用先对小
- 镜像易获取、分发、更新和复用
- 通过使用 Dockerfile 创建和部署灵活

docker 和 虚拟化
虚拟化: 在计算领域,一般指的是计算虚拟化或服务器虚拟化。
在计算机技术中, 虚拟化是⼀种资源管理技术, 是将计算机的各种实体资源, 如服务器、 ⽹络、 内存及存储等, 予以抽象、 转换后呈现出来,打破实体结构间的不可切割的障碍, 使⽤户可以⽤⽐原本的组态更好的⽅式来应⽤这些资源。
概况性的来说:虚拟化是对资源的抽象。⽬标往往是为了在同⼀个主机上同时运⾏多个系统或应⽤, 从⽽提⾼系统资源的利⽤率, 并且带来降低成本、 ⽅便管理和容错容灾等好处。
虚拟化大致有基于硬件的虚拟化和基于软件的虚拟化。
软件虚拟化又有一下的分类:
1、应用虚拟化
- Wine 等模拟类的软件
2、平台虚拟化
- 完全虚拟化。 虚拟机模拟完整的底层硬件环境和特权指令的执⾏过程, 客户操作系统⽆须进⾏修改。 例如IBM p和z系列的虚拟化、 VMware Workstation、 VirtualBox、 QEMU等;
- 硬件辅助虚拟化。 利⽤硬件(主要是CPU) 辅助⽀持(⽬前x86体系结构上可⽤的硬件辅助虚拟化技术包括Intel-VT和AMD-V) 处理敏感指令来实现完全虚拟化的功能, 客户操作系统⽆须修改, 例如VMware Workstation, Xen, KVM;
- 部分虚拟化。 只针对部分硬件资源进⾏虚拟化, 客户操作系统需要进⾏修改。 现在有些虚拟化技术的早期版本仅⽀持部分虚拟化;
- 超虚拟化(paravirtualization) 。 部分硬件接⼜以软件的形式提供给客户机操作系统, 客户操作系统需要进⾏修改, 例如早期的Xen;
- 操作系统级虚拟化。 内核通过创建多个虚拟的操作系统实例(内核和库) 来隔离不同的进程。 容器相关技术 Docker 即在这个范畴。
docker 和 传统虚拟化方式之间的不同

传统⽅式是在硬件层⾯实现虚拟化, 需要有额外的虚拟机管理应⽤和虚拟机操作系统层。 Docker容器是在操作系统层⾯上实现虚拟化, 直接复⽤本地主机的操作系统, 因此更加轻量级。
docker 的核心概念
docker 有三个核心概念:镜像(Image),容器(Container)和 仓库(Repository)。下面我们来详细说明:
docker 镜像
docker 的镜像类似于虚拟机镜像,可以将它理解为一个只读的模板。镜像是创建 docker 容器的基础。
docker 容器
docker 容器类似于一个轻量级的沙盒,docker 利用容器来运行和隔离应用。容器是从镜像创建的应用运行实例。它可以启动、开始、停止、删除,而容器之间是彼此互相隔离、互不可见的。可以把容器看作⼀个简易版的Linux系统环境(包括root⽤户权限、 进程空间、 ⽤户空间和⽹络空间等) 以及运⾏在其中的应⽤程序打包⽽成的盒⼦。
镜像自身是只读的。容器从镜像启动的时候,会在镜像的最上层创建一个可写层。
docker 仓库
docker 仓库就是存放 docker 镜像的地方。而 Registry 是存放仓库的地方,同一类的镜像会存放在一个仓库中,并使用 tag 来进行区分。其中最大的公开仓库是官方的 Docker Hub,其次国内云服务供应商(如腾讯云、阿里云等)也提供了公开的仓库,国内用户的话最好访问它们。
docker 的安装使用
Docker Engine 是 docker 容器和核心组件,官方提供了社区版本(Community Edition, CE)和企业版本(Enterprise Edition,EE)。官方还提供了除引擎之外的其他服务:Docker Hub、Docker Cloud等。
- Docker引擎: 包括⽀持在桌⾯系统或云平台安装Docker, 以及为企业提供简单安全弹性的容器集群编排和管理;
- DockerHub: 官⽅提供的云托管服务, 可以提供公有或私有的镜像仓库;
- DockerCloud: 官⽅提供的容器云服务, 可以完成容器的部署与管理, 可以完整地⽀持容器化项⽬, 还有CI、 CD功能。
安装 docker
注: 本系列都是使用 CentOS7,运行 Docker。
1.安装 yum 源
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
2.安装 docker 社区版
sudo yum install docker-ce docker-ce-cli containerd.io
3.启动 docker 服务
sudo systemctl start docker
4.验证
docker run hello-world
执行成功会输出 Hello from docker!
删除 docker
删除 docker 的命令为:
sudo yum remove docker-ce
删除 docker 后,它对应的配置信息和镜像、卷等文件不会删除,可以使用以下命令清除:
sudo rm -rf /var/lib/docker
注:其他系统上的安装方式这里就不详细说明了,需要的同学直接查看官方文档吧 https://docs.docker.com
配置 docker 服务
为了避免每次使⽤Docker命令时都需要切换到特权⾝份, 可以将当前⽤户加⼊安装中⾃动创建的docker⽤户组, 代码如下:
sudo usermod -aG docker USER_NAME
⽤户更新组信息, 退出并重新登录后即可⽣效。Docker 服务启动时实际上是调⽤了 dockerd 命令, ⽀持多种启动参数。因此, ⽤户可以直接通过执⾏ dockerd 命令来启动Docker服务, 如下⾯的命令启动Docker服务, 开启Debug模式, 并监听在本地的2376端口:
dockerd -D -H tcp://127.0.0.1:2376
这些选项可以写⼊/etc/docker/路径下的daemon.json⽂件中, 由dockerd 服务启动时读取:
{
"debug": true,
"hosts": ["tcp://127.0.0.1:2376"]
}
当然, 操作系统也对Docker服务进⾏了封装, 以使⽤ Upstart 来管理启动服务的 Ubuntu 系统为例, Docker服务的默认配置⽂件为/etc/default/docker, 可以通过修改其中的DOCKER_OPTS来修改服务启
动的参数, 例如让Docker服务开启⽹络2375端口的监听:
DOCKER_OPTS="$DOCKER_OPTS -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock"
修改之后, 通过service命令来重启Docker服务:
sudo service docker restart
对于CentOS、 RedHat等系统, 服务通过systemd来管理, 配置⽂件路径为 /etc/systemd/system/docker.service.d/docker.conf 。 更新配置后需要通过 systemctl 命令来管理Docker服务:
sudo systemctl daemon-reload
sudo systemctl start docker.service
此外, 如果服务⼯作不正常, 可以通过查看Docker服务的⽇志信息来确定问题, 例如在RedHat系统上⽇志⽂件可能为/var/log/messages, 在Ubuntu或CentOS系统上可以执⾏命令journalctl-u docker.service。每次重启Docker服务后, 可以通过查看Docker信息(docker info 命令) , 确保服务已经正常运⾏。
docker 实践一:简介和安装的更多相关文章
- 【Docker Compose】简介与安装
1.简介 Compose 是一个用户定义和运行多个容器的 Docker 应用程序.在 Compose 中你可以使用 YAML 文件来配置你的应用服务.然后,只需要一个简单的命令,就可以创建并启动你配置 ...
- 【原创】运维基础之Docker(1)简介、安装、使用
docker 18.09 官方:https://docs.docker.com/ 一 简介 Docker is a platform for developers and sysadmins to d ...
- Docker简介以及安装
Docker简介以及安装 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.什么是容器 1.一种虚拟化方案 与传统的虚拟机不同,传统的虚拟机是通过中间层将一台或多台独立的机器虚拟运 ...
- RabbitMQ详解(一)------简介与安装(Docker)
RABBITMQ详解(一)------简介与安装(DOCKER) 刚刚进入实习,在学习过程中没有接触过MQ,RabbitMQ 这个消息中间件,正好公司最近的项目中有用到,学习了解一下. 首先什么是MQ ...
- Docker简介与安装
简介与安装 简介 Docker是什么 一款产品从开发到上线,从操作系统,到运行环境,再到应用配置.作为开发+运维之间的协作我们需要关心很多东西,这也是很多互联网公司都不得不面对的问题,特别是各种版本的 ...
- docker入门1---docker的简介和安装
Tomxin7 Simple, Interesting | 简单,有趣 什么是Docker? 简介: Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的.可移植的.自给自足的容器.开发 ...
- Docker从入门到放弃(1) Docker简介与安装
目录 一.Docker简介 1.Docker是什么: 2.为什么有docke的出现: 3.docker与传统容器的区别: 4.docker基本组成 5.docker工作原理: 二.Docker安装 ...
- Docker实践,来自沪江、滴滴、蘑菇街架构师的交流分享
架构师小组交流会:每期选一个时下最热门的技术话题进行实践经验分享. 第一期主题:容器实践.Docker 作为当前最具颠覆性的开源技术之一,其轻量虚拟化.可移植性是CI/CD,DevOps,微服务的重要 ...
- Docker可视化管理工具Shipyard安装与配置
Shipyard简介 Shipyard是一个集成管理docker容器.镜像.Registries的系统,它具有以下特点: 1.支持多节点的集成管理 2.可动态加载节点 3.可托管node下的容器 镜像 ...
- Docker实践之01-入门介绍
目录 一.Docker概述 镜像 容器 仓库 二.安装Docker 1.在CentOS上安装Docker 2.在Ubuntu上安装Docker 3.启动docker 4.建立Docker用户组 5.测 ...
随机推荐
- Homebrew 使用国内镜像
在国内的网络环境下使用 Homebrew 安装软件的过程中,可能会长时间卡在 Updating Homebrew ... 方法一:按command + c 取消本次更新操作,直接安装软件 方法二:设置 ...
- thymeleaf 直接调用后台Service
前端thymeleaf <select name="sex" class="form-control m-b" th:with="type=${ ...
- 【Python 脚本报错】AttributeError: 'module 'yyy' has no attribute 'xxx'的解决方法
先参考这篇记录大概理解了原因, 再深入了解下python的import机制, 发现自己的模块之间存在互相import. 比如,A.py中import B,而B.py中也import A了, 现在执行模 ...
- .prop() vs .attr()
.prop() vs .attr() Update 1 November 2012 My original answer applies specifically to jQuery 1.6. My ...
- 关于linux下的系统存储管理
https://blog.csdn.net/aaaaaab_/article/details/80159871 //查看当前系统磁盘使用空间 df -h //查看当前目录文件占用空间大小 du -sh ...
- Somatic hypermutation (or SHM) is a cellular mechanism by which the immune system adapts to the new foreign elements that confront it (e.g. microbes), as seen during class switching. Somatic hypermut
Somatic hypermutation (or SHM) is a cellular mechanism by which the immune system adapts to the new ...
- saveLayerAlpha简单入门
package com.loaderman.customviewdemo; import android.content.Context; import android.graphics.*; imp ...
- PorterDuffXfermode之PorterDuff.Mode.XOR入门学习
package com.loaderman.customviewdemo.view; import android.content.Context; import android.graphics.* ...
- VS2015编译GEOS
下载链接:http://trac.osgeo.org/geos/ 1. 打开cmake,加载geos源码和定位geos的工程存放位置: 2.点击configure,会报错,首先设置CMAKE_INST ...
- 阶段5 3.微服务项目【学成在线】_day16 Spring Security Oauth2_08-SpringSecurityOauth2研究-解决swagger-ui无法访问
3.3.4.4 解决swagger-ui无法访问 当课程管理加了授权之后再访问swagger-ui则报错: 这里默认配置的了所有的请求都必须认证 把图片认证的路径加进去的话 那么访问课程图片的列表 就 ...