Docker

阿里云服务器3折开售(点此直达)

image

很久以前,大概是2015年的时候,就开始想学学Python了。。。
为此,兴致冲冲的买了树莓派2B+ 。。。。
然后,,然后,,吃灰了好久。。。

然而随着工作时间变成,它慢慢成为了我 Linux实验环境的好助手。各种玩的,实验的全丢在上面。
最近几个月,也在慢慢接触Docker。

还好,Docker这个东东,也支持 Raspberry 呢。让它继续发挥它的优势吧。。免得埋没了这么好的一块板子。


没图说JJ 所以此处有图 哈哈.png

有时间再整理关于 玩树莓派的这些年的一些东西吧。
现在这是开始玩 Docker 时间。。。

zhuanzhu.png

开始主题

官方镜像(docker Registry):docker hub

还有 Quay.io 存储着 CoreOS,Google的Google Container Registry,Kubernetes镜像都在这里

国内Docker HUb的镜像 (docker Registry)

提供 docker Registry 镜像储存服务的国内厂商

网易云镜像服务 ( https://c.163.com/hub#/m/library/ )

DaoCloud镜像市场 (https://hub.daocloud.io

阿里云镜像库 (https://cr.console.aliyun.com

还可以搭建私有的 Docker Registry

Docker官方提供了搭建私有的 Docker Registry 的镜像 https://store.docker.com/images/registry

官方镜像只是实现了 私有docker注册的 服务端实现(https://docs.docker.com/registry/spec/api),只是支持 docker 命令。没有实现图形界面、镜像维护、用户管理、访问控制等高级功能。

但是有第三方软件不仅实现了这些基础的 api,还实现了一些高级功能。

比如: VMWare Harbor (https://) 和 Sonatype Nexus (https://www.sonatype.com/docker)

以上这些都是用于存储 Docker 镜像的地方。

==================================================

添加 Docker 源

Dokcer 分为 Docker CE(社区版) 和 Docker EE(企业版) 两个版本。

官方安装指南: https://docs.docker.com/engine/installation

Ubuntu

切忌:切勿在没有给 APT 配置 Docker 源的情况下直接使用 apt 命令安装Docker。

卸载旧版本,旧版本Docker称为 docker 或者 docker-engine 。使用:

sudo apt-get remove docker docker-engine docker.io

来卸载

Ubuntu14.04 安装 AUFS 内核驱动模块

有一部分发行版的没有安装 AUFS可选内核模块,它作为 Docker 的储存层驱动存在。

命令:

sudo apt-get install linux-image-extra-$(uname -r) linux-image-extra-virtual

强烈建议使用国内源。国外源太慢了。

添加 APT HTTPS的 CA 证书 sudo apt-get update sudo apt-get install apt-transport-https ca-certificates curl software-properties-common //添加 国内源 GPG 密钥 curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add - //官方源 密钥: //curl -fsSL https://download.docker.com/linux/ubuntu/gpg | grep sudo apt-key add -

然后,向 source.list 中添加Docker 软件源

//给 apt 添加 国内 docker 源 sudo add-apt-repository "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu (lsb_release -cs) stable" //官方源 //sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu(lsb_release -cs) stable)"

安装 Docker-ce

1、手动安装:

先更新软件包

sudo apt-get update sudo apt-get install docker-ce

2、也可以,使用 脚本自动安装

主要用于测试和开发环境,Ubuntu上可以使用脚本安装,简化安装流程

curl -fsSL get.docker.com -o get-docker.sh sudo sh get-docker.sh --mirror Aliyun

这个自动化的脚本安装的是 Docker Edge 版本。

脚本亦会将所有的准备工作做好,不用任何操心。

启动Docker CE

sudo systemctl enable docker sudo systemctl start docker

ubuntu 14.04 比较特殊,使用下面命令启动

sudo service docker start

建立 docker 用户组

默认情况下,docker 命令行 使用 Unix socket 与 Docker 引擎进行通讯。

所以,在设计上,为了安全考虑,只有 docker 组 和 root 用户,才能和 docker 引擎通讯。

而,一般情况下,我们又不直接使用 root 用户进行操作,所以,很有必要建立一个 docker 用户组。

建立 docker 组

sudo groupadd docker

将当前用户 加入 docker 组

sudo usermod -aG docker $USER

然后,退出当前终端。再重新连接。测试 Docker 安装是否正确

docker run hello-world xxxx 它会从 Docker 仓库 上面去拉取镜像。

[图片上传失败...(image-9a1508-1562989772615)]

出现这句话,证明,安装没有任何问题

==================插入 树莓派的安装方法========================

Docker CE 支持 Raspberry Stretch 和 Raspberry Jessie 操作系统。

1、安装 CA 证书

sudo apt-get update sudo apt-get install apt-transport-https ca-certificates curl gnupg2 lsb-release software-properties-common

2 添加软件源的 GPG 密钥

//国内源 密钥 curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/raspbian/gpg | sudo apt-key add - //官方源密钥 curl -fsSL https://download.docker.com/linux/raspbian/gpg | sudo apt-key add -

3 向 source.list 中添加 Docker CE 软件源

// 国内源 sudo add-apt-repository "deb [arch=armhf] https://mirrors.ustc.edu.cn/docker-ce/linux/raspbian (lsb_release -cs) stable " //官方源 sudo add-apt-repository "deb [arch=armhf] https://download.docker.com/linux/raspbian(lsb_release -cs) stable"

4 安装 Docker CE

//更新 apt 缓存 sudo apt-get update sudo apt-get install docker-ce

使用脚本自动安装

curl -fsSL get.docker.com -o get-docker.sh sudo sh get-docker.sh --mirror Aliyun

5 启动 Docker

sudo systemctl enable docker sudo systemctl start docker

6 建立 Docker 用户组

sudo groupadd docker

将当前用户加入 Docker 用户组

sudo usermod -aG docker $USER

7 测试 Docker 是否安装正确

docker run arm32v7/hello-world

[图片上传失败...(image-1dd78a-1562989772615)]

安装成功

docker run -it ubuntu bash

注意:ARM 平台不能使用 x86镜像

查询 Raspbian 可使用镜像访问 arm32v7 (https://hub.docker.com/u/arm32v7)

==================== 树莓派的安装方法 结束=====================

镜像加速

Docker 官方的国内镜像: https://registry.docker-cn.com

七牛云加速器 https://reg-mirror.qiniu.com

在配置时,若发现拉取不到镜像,就马上切换另一个加速器地址

Ubuntu 14.04 和 Debian 7 Wheezy 配置方法

编辑 /etc/default/docker 文件,在

DOCKER_OPT="--registry-mirror=https://registry.docker-cn.com"

然后重启服务

sudo service docker restart

Ubuntu 16.04 、Debian8+、 CentOS 7

在 /etc/docker/daemon.json 中(如果文件不存在,就新建该文件),写入

{ "registory-mirror":[ "https://registry.docker-cn.com" ] }

注意:该文件内,一定要保持 JSON的规范。否则 docker 不能启动

重启服务

sudo systemctl daemon-reload sudo systemctl restart docker

注意:如果已经按照旧的教程,修改了 docker.service 文件内容,那么就需要去掉 docker.service 中添加的内容(--registry-mirror=https://registry.docker-cn.com)。

检查是否配置成功

docker info

[图片上传失败...(image-3cd049-1562989772615)]

如果换源后,还是拉取缓慢,就可以继续换。

获取镜像

docker pull

命令格式

[图片上传失败...(image-919192-1562989772615)]

例如:

docker pull ubuntu:16.04

下载的过程中,我们可以看到镜像的存储,是分层的。所以,下载的时候,也是分层进行下载的。

运行

启动 ubuntu:16.04里面的bash,进行交互式操作

docker run -it --rm ubuntu:16.04 bash //如果进来了 cat /etc/os-release

docker run 是运行容器的命令

  • -it :是两个参数. -i 是交互式操作, -t 是终端

  • --rm :这个参数是说,容器退出后随之将其删除。

  • 一般情况下,退出的容器并不会立即删除,除非手动 docker rm 。

  • 这里,我们执行这个命令只是看看效果,不需要排障等操作。因此 --rm 可以避免浪费空间

  • ubuntu:16.04 : 是指使用 ubuntu16.04 镜像为基础来启动容器

  • bash : 放在镜像后的是命令,这里我们需要使用的交互式 shell,因此使用的 bash

最后,可以通过 exit 命令,退出容器

列出镜像

要想看看,已经下载下来的镜像,可以使用

docker image ls 命令

[图片上传失败...(image-ffca51-1562989772614)]

查看,镜像、容器、数据卷 所占用的空间

docker system df

[图片上传失败...(image-fa27cd-1562989772614)]

虚悬镜像 (特殊的镜像)

[图片上传失败...(image-fc7d60-1562989772614)]

是因为,在版本跌代的过程中,老版本升级了,当官方发布新版本后,重新 docker pull 镜像名 ,这时,新下载的镜像使用了老的镜像的名字,而老的镜像名字就会变成 <none>

除了 docker pull 会出现这种情况,docker build 也会出现。

新旧镜像同名,旧镜像名字被取消,从而出现仓库名、标签均为 <none> 的镜像。

这类无标签镜像就被称为 虚悬镜像(dangling image)

这类镜像,是没有啥价值的,可以随意删除。

查看这类镜像

docker image ls -f dangling=true

[图片上传失败...(image-8bf2d0-1562989772614)]

删除 虚悬镜像

docker image prune

中间层镜像

为了加速镜像构建、重复利用资源,Docker 会利用 中间层镜像。所以,使用一段时间后,可能会看到一些依赖的中间层镜像。

docker image ls 只会显示顶层的镜像。看不到中间层镜像。

如果想要看到的话,只需要再加上 -a 参数

docker image ls -a

[图片上传失败...(image-3d49e9-1562989772614)]

列出部分镜像

docker image ls 默认情况下,会列出所有的顶级镜像,但是当只需要列出部分镜像的情况下,就需要加上 额外的 参数。

  • 根据仓库名列出镜像

docker image ls ubuntu

[图片上传失败...(image-302d4-1562989772614)]

  • 列出特定的某个镜像,指定 仓库名和标签

docker image ls ubuntu:16.04

[图片上传失败...(image-13b63d-1562989772614)]

docker image ls 还支持强大的过滤器参数 --filter 或者简写 -f .我们之前的,过滤虚悬镜像就是用的 --filter 的简写方法。

[图片上传失败...(image-7c699a-1562989772614)]

[图片上传失败...(image-c863ac-1562989772614)]

以特定格式显示

[图片上传失败...(image-2a0a54-1562989772614)]

[图片上传失败...(image-a87f1a-1562989772614)]

[图片上传失败...(image-ce65ee-1562989772613)]

[图片上传失败...(image-e4dc12-1562989772613)]

删除本地镜像

docker image rm 命令

命令格式

[图片上传失败...(image-1b1508-1562989772613)]

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

推荐阅读更多精彩内容