Docker 安装和使用

概述

Docker 是一个开放源代码软件,是一个开放平台,用于开发应用、交付应用、运行应用。

Docker允许用户将基础设施中的应用单独分割出来,形成更小的颗粒(容器),从而提高交付软件的速度。

Docker容器与虚拟机类似,但二者在原理上不同。容器是将操作系统层虚拟化,虚拟机则是虚拟化硬件,因此容器更具有便携性、高效地利用服务器。 容器更多的用于表示 软件的一个标准化单元。由于容器的标准化,因此它可以无视基础设施的差异,部署到任何一个地方。另外,Docker也为容器提供更强的业界的隔离兼容。

架构

<img src="http://49.235.78.232:8100/images/2020/09/20/20200920203521.png" style="zoom:75%;" />

架构图中组件:

1、Docker daemon(后台进程)

Docker daemon是一个运行在宿主机(DOCKER_HOST)的后台进程,可通过Docker客户端与之通信

2、Client(Docker客户端)

Docker客户端是Docker的用户界面,可以接受用户命令和配置标识,与Docker daemon通信

3、 Images(Docker镜像)

Docker镜像是一个只读模板,它包含创建Docker容器的说明,和系统安装光盘有点像,同理使用Docker镜像运行其中的程序

4、Container(容器)

容器是镜像的可运行实例

镜像和容器的关系有点类似于面向对象中,类和对象的关系

可通过Docker API或者CLI命令来启停、移动、删除容器

5、Registry

Docker Registry是一个集中存储与分发镜像的服务

可借助Docker Registry来避免镜像的手动拷贝

一个Docker Registry可包含多个Docker仓库 ->

每个仓库可包含多个镜像标签 ->

每个标签对应一个Docker镜像

Docker Registry可分为公有Docker Registry和私有Docker Registry

最常用的Docker Registry莫过于官方的Docker Hub,也是默认的Docker Registry

安装

安装环境为:CentOS7

设置yum源

yum install -y yum-utils device-mapper-persistent-data lvm2

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

yum-config-manager --enable docker-ce-edge

yum-config-manager --enable docker-ce-test

配置Docker 镜像源

mkdir /etc/docker

sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "graph":"/home/docker",
  "registry-mirrors": [
       "https://docker.mirrors.ustc.edu.cn",
        "https://reg-mirror.qiniu.com",
        "https://hub-mirror.c.163.com"]
}
EOF

配置国内加速地址,可以提升下载速度

Docker中国区官方镜像:https://registry.docker-cn.com

网易:http://hub-mirror.c.163.com

ustc :https://docker.mirrors.ustc.edu.cn

中国科技大学:https://docker.mirrors.ustc.edu.cn

阿里:形式类似于 https://xxxxx.mirror.aliyuncs.com

需要登录阿里云账号 -> 容器镜像服务 -> 镜像服务 -> 复制加速器地址

安装启动Docker

yum install docker-ce
# 安装Docker

service docker start
# 启动Docker服务

Portainer管理Docker

介绍

  • Portainer 是一款轻量级的图形化管理工具,通过它我们可以轻松管理不同的 docker 环境。Portainer 部署和使用都非常的简单,它由一个可以运行在任何 docker 引擎上的容器组成。
  • Portainer 功能十分全面,提供状态显示面板、应用模板快速部署、容器镜像网络数据卷的基本操作(包括上传下载镜像,创建容器等操作)、事件日志显示、容器控制台操作、Swarm 集群和服务等集中管理和操作、登录用户管理和控制等功能。基本能满足中小型单位对容器管理的全部需求。

安装启动

docker pull portainer/portainer
#拉取镜像

docker volume create portainer_data
#创建Volume,保持数据持久化

docker run -d -p 9000:9000 --name portainer --restart always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer
#启动Portainer

docker命令说明:

docker run:新建并启动容器

-d:静默启动

-p 9000:9000:指定暴露端口为9000

--name portainer:指定容器名称,可自定义

--restart always:指定容器退出后的重启策略为始终重启

-v /var/run/docker.sock:/var/run/docker.sock:获取Docker套接字,

-v portainer_data:/data:数据卷是用来持久化数据的,生命周期独立于容器,Docker 不会在容器被删除后自动删除数据卷

portainer/portainer:指定镜像

关于docker.sock

<img src="http://49.235.78.232:8100/images/2020/09/20/20200920203550.png" style="zoom:50%;" />

简单地说,/var/run/docker.sock文件是Docker守护进程(Docker daemon)默认监听的Unix域套接字(Unix domain socket),容器中的进程可以通过它与Docker守护进程进行通信。

例如:Portainer通过绑定的/var/run/docker.sock文件与Docker守护进程通信,执行各种管理操作。

使用Portainer可以轻松创建容器。实际上,HTTP请求是通过docker.sock发送给Docker守护进程的。可以通过curl创建容器来说明这一点。使用HTTP接口运行容器需要两个步骤,先创建容器,然后启动容器。

注意: 绑定Docker套接字之后,容器的权限会很高,可以控制Docker守护进程。因此,这一点必须谨慎使用,只能用于足够信任的容器。

使用

首次使用需要创建密码,进入主页面后,如下图:

<img src="http://49.235.78.232:8100/images/2020/09/20/20200920203555.png" style="zoom:50%;" />

在页面上就可以直接进行容器的创建、启动、停止、删除等操作

同时,也可以对Volume、NetWorks进行新增、删除操作

参考

关于/var/run/docker.sock

Docker从入门到实践

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,366评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,521评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,689评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,925评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,942评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,727评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,447评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,349评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,820评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,990评论 3 337
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,127评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,812评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,471评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,017评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,142评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,388评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,066评论 2 355