社区主页 文章详情

将ubuntu设置为NAS——5. docker与docker-compose的安装

杨某人 19-10-28 关注

前言的前言

想通过本平台记录一些折腾小主机的过程,同时方便自己查阅,还能赚点金币,于是就有了这个小系列。之前已写了4篇,欢迎参看打赏。

我目前的主机外壳采用蜗牛星际外壳,主板是暴风酷播云华擎主板J3455,电源是暴风酷播云的台达电源,硬盘是一块固态硬盘,3块1T的机械硬盘,原蜗牛星际背板拆除,电源与数据线直接接硬盘的方式。软件层面主要是用Kubuntu18.04系统(ubuntu其他风味版,和原版功能上没有太大区别),安装了Transmission-daemon用于下载,nextcloud用于网络硬盘,kvm作为虚拟机开软路由,还有其他一些简单功能,基本实现NAS的作用。后面我将慢慢分享其中的过程,作为小白,很多都是自己参考网上根据其他作者文章,再自己摸索实践出来,如有谬误,请各位指正,大家共同学习。后面涉及的命令行都是在ubuntu终端(不要问我终端是什么 )中输入,请大家注意。

正式的前言

之前写nextcloud的安装分享过程,有一些值友提出为什么不采用docker安装方式安装nextcloud?其实在《3. 私人网盘nextcloud安装(上)》我简单说过原因,觉得部分文件放在docker内部,需要映射挂载才能更方便使用,同时也错误地认为docker其实是一种虚拟机,感觉运行效率不高,所以就一开始就没采用这种方式。其实docker下安装实际上是一种很便捷简单安全的安装方式,很值得推荐的。在使用docker-compose之后,就更加简单了,只需简单设置docker-compose.yml文件,一行命令就基本都搞定了。

之前我使用过windows下安装docker桌面版,然后安装nextcloud,一开始自己很小白,整个使用过程遇到了很多很多问题,虽然最后能用了,但还是会有些问题存在。本篇也不是介绍在windows下用docker安装nextcloud,而是介绍在Ubuntu下用docker安装nextcloud。在这里我也还是不推荐使用windows的docker桌面版安装,如果您真想在windows下尝试,建议安装虚拟机,然后用虚拟机安装Ubuntu再安装docker尝试。

本篇单独先介绍在Ubuntu下docker及docker-compose安装,下篇再介绍docker下Nextcloud的安装。

1、docker简单介绍

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

以上是百度百科介绍,其实按照我的理解,docker其实是精简化的虚拟机,可以加载docker-hub内发布的镜像(images),使用过程就是再镜像的基础上编辑各个镜像之间的关系或者对镜像进行自定义设置,变成集成容器(container),各种应用就是运行在相互独立环境的容器(container)内的。这些docker-hub内的镜像都是应用作者制作并设置好环境的,用户只需下载镜像,简单设置,便能顺利启动。这有点像作者装好了主机,你拿过来插上电源网线,设置个用户名密码就能使用了。我简单谈谈自己的理解,如有不对,欢迎指教。

2、ubuntu下安装docker

docker在Ubuntu下有 Docker Enterprise Edition (Docker EE) 和 Docker Engine - Community(Docker CE)2个版本,Docker EE是企业版,这里我不用,我主要用 Docker CE即社区版,可免费使用。

2.1 卸载旧版本docker

如果你以前安装过 docker, docker.io, 或docker-engine ,需要先卸载,如果你Ubuntu新装的,这一步卸载就不用管了。

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

本机上没有旧版docker软件本机上没有旧版docker软件

如果如图提示 ,说明就没有安装过上述旧版。

2.2 安装Docker Engine - Community(Docker CE)方案

官方介绍了3种安装方式:

  1. 官方推荐,设置docker官方源,进行安装,方便后期升级

  2. 下载离线安装包,进行安装

  3. 如果在测试环境下,用自动化脚本安装

这里主要介绍第一种,其他方式大家参考官网

2.3 安装docker官方源

先升级本机自带源

sudo apt-get update

安装软件包,以允许apt通过HTTPS使用官方源,复制粘贴以下全部命令到终端开始安装,中间要按Y确认一下:

sudo apt-get install
apt-transport-https
ca-certificates
curl
gnupg-agent
software-properties-common

添加Docker的官方GPG密钥 ,可能需要点时间,提示OK,表示添加好了。

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -


将ubuntu设置为NAS——5. docker与docker-compose的安装

通过搜索密钥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)
sub rsa4096 2017-02-22 [S]


核对密钥核对密钥

添加docker稳定源(如果你的主机 不是x86_64 / amd64,请参看官方 ),全部复制粘贴如下代码到终端

sudo add-apt-repository
"deb [arch=amd64] https://download.docker.com/linux/ubuntu
$(lsb_release -cs)
stable"

2.4 安装Docker CE

还是先升级源列表

sudo apt-get update

常规apt-get安装方式,中途需要输入Y确认

sudo apt-get install docker-ce docker-ce-cli containerd.io

试验安装是否成功,查看版本号。

docker -v

查看版本查看版本

目前最新的是19.03.4版。

2.5 添加当前登陆用户到docker组

防止直接运行docker命令,提示权限问题,比如 Got permission denied while trying to connect to the Docker daemon socket 提示,这时需要在docker命令前面,添加sudo,这是由于 docker.sock是属于root用户和docker组的,为了后期命令输入不需要加前缀sudo,需要将当前登陆用户添加到docker组。

执行添加用户组命令

sudo gpasswd -a ${USER} docker

手动更新用户组,使其马上生效

newgrp - docker

测试

docker ps //显示正在运行的容器

不会再提示错误,显示正在运行容器,但目前应该说明都没有,因为我们还没安装运行任何镜像。

运行docker ps运行docker ps

CONTAINER ID:运行容器的ID,这个很有用,可以直接指代对应容器,而且不需要全输入,输入前3个数字就能指代对应容器。

IMAGE:下载的镜像名,容器依赖的镜像

STATUS:容器运行状态

PORTS:容器运行的网络端口

NAMES:容器名称

3、 docker-compose介绍

Compose是一个用于定义和运行多个Docker容器的编排工具。可以一条命令启动多个容器。主要是解决了容器与容器之间如何管理编排的问题。

我理解docker-compose不仅可以同时设置不同容器及相互的关系,而且还可以直接下载需要的镜像,让镜像运行在需要的容器里。使用它主要2步:

  1. 用docker-compose.yml文件设置定义各种容器及相关联

  2. 用docker-compose up命令运行docker-compose.yml文件启动应

其实这个跟windows的批处理文件很像。

4、docker-compose安装

windows10的docker桌面版已经集成docker-compose,但linux系统(比如ubuntu)需要再安装。

可以从该网址找到最新版安装下载方法。

目前最新稳定版是1.24.1,用以下命令,由于在墙外,可能下载速度不稳定或者很慢,请多试试

sudo curl -L https://github.com/docker/compose/releases/download/1.24.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose


下载docker-compose下载docker-compose

修改权限

chmod +x /usr/local/bin/docker-compose


查看docker-compose版本查看docker-compose版本

运行查看版本,版本号是1.24.1。

docker-compose -v

总结

本篇简单介绍了docker与docker-compose在Ubuntu下的安装,基本参考docker官方的文档。本篇是一个基础,大家可以先熟悉一下docker相关操作命令,可以在终端输入docker --help查看,简单了解一下。

参考

docker官方文档

docker-compose官方文档


展开阅读全文

打开App,查看更多好文内容
全部评论 (67)
rmbp
10
2019-10-28

什么时候讲k8s?

值友1311110754
6
2019-10-28
小妖大人: 值得买都变成技术论坛了呀 不过这年代还是不要compose了 都k8s了 1

单机搞个毛线的k8s,面向的场景都不一样,k8底层还不是调度docker

就是爱捣腾
3
2019-10-28

个人更喜欢RHEL/CentOS系的,你这个装了物理ubuntu再运行docker,docker镜像里跑nas,感觉不如Exsi直接加载NAS系统的镜像

就是爱捣腾
1
2019-10-29
就是爱捣腾: 个人更喜欢RHEL/CentOS系的,你这个装了物理ubuntu再运行docker,docker镜像里跑nas,感觉不如Exsi直接加载NAS系统的镜像 1
杨某人: 不是这样的,docker没有跑NAS,您看前面文章其实Nextcloud是在Ubuntu下搭建环境直接运行。我是把Ubuntu作为NAS,更直接点是服务器。后面看值友提到docker就写点东西,顺便把之前docker折腾过程记录一下。其实Ubuntu也能安装虚拟机,再安装NAS,没必要安装Exsi。之所以我不选择Exsi,主要是上传文件到Exsi划分硬盘的速度不能满速,我一直解决不了,如果有值友可以指教一二,万分感谢。 2

文章很不错,很详细![棒棒哒]但是你不是很明白我的意思,docker必须依赖于操作系统Windows/类Linux,而exsi是可以装在裸物理机上的,所以性能会比docker高一些,谈及具体应用,那就不一定了

值友1112963064
1
2019-10-28
rmbp: 什么时候讲k8s? 1

自娱自乐的程度,没必要用k8s……k8s是为了pod的健康监控和状态管理,比如pod的自动探索,然而,还要看应用有没有解决弹缩带来的多实例问题……nas甚至都没必要用容器……

打开App,查看更多好文和评论
猜你喜欢
编辑精选
相关商品推荐
62
929
67
你已经点过赞了
新浪微博 QQ空间 微信好友 豆瓣
当前为触屏版
热门搜索