家庭NAS之Ubuntu下Docker的安装与使用

经过前面那么多期的铺垫,今天我们终于可以来安装使用我么的docker了。这是一个非常好用的工具,我们的NAS服务百分之九十都会部署在docker上运行。

有了docker以后,你不再需要小心翼翼地担心把系统配置搞乱无法恢复,在这里你可以通过几个简单地命令就可以将相关服务重新部署回来。

就这样,请拥有,并享受

Docker简介

如你并不想了解Docker是什么,只需要能简单的用就行地话你可以跳过本小节,直接进入Docker的安装部分。

关于Docker的详细信息我们可以去Docker的官网查看,点击这里可以跳转。

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

这是百科对Docker的解释,看到这里是不是很懵,不要紧,我来为你解释。

Docker是一个容器引擎,容器就是用来放东西的,Docker容器里面放的就是操作系统,一个容器对应一个操作系统,你可以把Docker想象成虚拟机,但是和虚拟机不同的是,得益于Docker的机制,在Docker中运行虚拟机往往不需要很多内存以及处理器资源,相比VMWare动则几个G的大小,在Docker中运行一个虚拟机仅需几十兆到几百兆的空间,你可以运行几十甚至上百个虚拟机在Docker中,这是VMWare所不能比的。

在开始搭建之前,你需要了解docker的几个基本概念

镜像:镜像就是实际就类似于一个安装镜像,比如你需要安装Windows,那么你需要去微软的官网下载windows的镜像,你才能进行安装。

DockerHub:DockerHub就是一个存放以及分享镜像的地方,你可以将你自己制作的镜像上传到DockerHub与别人分享,你也可以到DockerHub下载别人分享的镜像进行使用。

容器:当你启动了一个镜像之后,对应着就会有一个容器生成,容器是用来存储镜像运行时的状态的,这就相当于你通过镜像创建了一个虚拟机,那么创建完成后你的虚拟机就跑在了容器中。镜像是静态的,而容器是动态的。

有了对Docker的一个简单了解后,我们就可以进行接下来的操作了。

Docker安装与卸载

Docker安装

在apt的官方源中已经加入了Docker,但是这往往不是最新的版本,要安装最新的版本,我们需要进行一些简单的配置。

Docker提供了Enterprise以及Community两个版本可供安装,我们只需要安装Community版即可,这是一个社区版,可以免费使用。

如果你以及安装了一个老的版本的Docker,那么你需要先卸载它,老版本的Docker软件名字为dockerdocker.io或者是docker-engine,你可以通过下面语句卸载它。

sudo apt-get remove docker docker-engine docker.io containerd runc
  1. 首先更新apt包的索引:
sudo apt update
  1. 安装软件包以允许apt通过HTTPS使用存储库:
sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common
  1. 添加Docker的官方GPG密钥:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88通过搜索指纹的后8个字符,验证您现在是否拥有带有指纹的密钥 。

sudo apt-key fingerprint 0EBFCD88

执行后出现以下内容即添加成功

pub   rsa4096 2017-02-22 [SCEA]
      9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88
uid           [ unknown] Docker Release (CE deb) <docker@docker.com>
sub   rsa4096 2017-02-22 [S]

  1. 使用以下命令来设置稳定的存储库
sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"
  1. 更新apt包索引。
sudo apt-get update
  1. 安装最新版本的Docker Engine-Community和containerd
sudo apt install docker-ce docker-ce-cli containerd.io
  1. 验证安装是否成功
docker --version

如果出现如下的版本号,即为安装成功

Docker version 19.03.5, build 633a0ea838

Docker卸载

  1. 卸载Docker Engine-社区软件包:
sudo apt purge docker-ce
  1. 主机上的映像,容器,卷或自定义配置文件不会自动删除。要删除所有图像,容器和卷:
sudo rm -rf /var/lib/docker

Docker配置及基本使用

在完成docker的安装后,我们就可以开始使用docker来部署服务了,在此之前,我们先来学习一下docker的基本使用方法。

在docker中你首先需要有镜像文件(images),你才可以通过镜像来部署相关服务,镜像的话你可以到DockerHub获取,也可以自己写dockerfile来构建镜像(本专栏不涉及)。

Docker配置

  1. 修改镜像源
    docker服务器在国外,在国内访问速度很慢,我们可以通过修改镜像源为阿里云来启用加速

首先到阿里云镜像服务中心,你需要登录阿里云。

镜像服务中心

然后进入管理控制台,然后选择镜像中心 -> 镜像加速器

镜像加速器

如果你没有的话会提示你进行申请,完成后会看到上图的信息,会提示你进行配置,配置的话你只需要将配置镜像加速器下方的代码复制到终端执行即可(如果你分不清命令的话一次性全部复制完,粘贴后按下回车键)。
这样当以后下载镜像的时候就会快很多。

Docker基本使用

  1. 获取镜像文件
    首先到docker官网:点击这里进行注册注册完成后登录
    Docker官网

    然后点击左上角的搜索框输入需要搜索的东西可进行搜索,这里以搜索Ubuntu为例
    镜像搜索

    完成搜索后我们可以看到列出了很多的项目,我们根据自己的需要点开一个镜像
    镜像页面

    在这里我们我们可以看到相关的镜像描述以及基本的信息,右边有一栏黑色的代码框,通过输入代码框的命令我们即可获取相关的镜像。
    在这里我们输入一下命令来获取镜像
docker pull ubuntu
获取镜像

下载完成后我们可以通过以下命令查看本地的镜像

docker images
查看本地镜像

REPOSITORY:镜像名
TAG:标签:latest为最新版本
IMAGE ID:镜像ID,镜像唯一标识符
CREATED:构建时间
SIZE:镜像大小

  1. 构建容器
    在有了本地镜像之后,我们就可以来构建容器了,我们先通过一个简单的例子来讲解
docker run -d \
-p 9999:8096 \
--name=ubuntu \
-v /mnt/sda:/mnt \
--restart=always \
--device /dev/dri/renderD128:/dev/dri/renderD128 \
ubuntu

出现下图所示内容即创建成功

创建成功

上面命令你也可以将\符去掉写成一行,这里来讲解一下各个参数的作用

-d:表示运行容器后台运行
-p:端口映射,格式为主机端口:容器内端口,即通过主机的该端口既可以访问到容器内的端口内容
--name:命名容器,默认生成的容器名字是随机的,可以通过该命令指定
-v:绑定文件卷,格式为主机目录:容器内目录,在主机上的某一目录映射到容器内,即通过容器内指定的目录即可访问到主机对应的目录中的文件。
--restart:开机重启,always为开机重启
--device:绑定硬件到容器内部,在后面章节做详细讲解。

其他相关命令

创建成功后我们可以通过如下命令查看正在运行的容器:

docker ps

通过一下命令查看所用容器,包括未运行的容器:

docker ps -a

停止容器:

docker stop 容器名/容器id

这里容器id只需要输入前几位就可以,只要能和其他的区别开来就行

启动容器:

docker start 容器名/容器id

删除容器(删除前需要先停止容器):

docker rm 容器名/容器id

删除镜像(删除前需先删除用该镜像构建的容器)

docker rmi 镜像id

命令总结

  1. docker pull:拉取镜像
  2. docker images:查看本地镜像
  3. docker run:通过镜像构建容器
  4. docker ps:查看正在运行的容器
  5. docker ps -a:查看所有容器
  6. docker start:启动容器
  7. docker stop:停止容器运行
  8. docker rm:查出容器
  9. docker rmi:删除镜像

写在后面

容器相对来说使用还是比较简单的,通过简单的学习就可以使用。如果你对其还不是很熟悉,你应该多去实际使用上面的命令,在这里你不用担心出错,大不了使用docker rm删除了再来一次,而不用担心物理机环境遭到破坏。

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