ubuntu-docker

ubuntu20.04 部署docker容器

Docker 是什么?

  • 我们常说的“Docker”,指的是容器化技术,用于支持创建和使用 Linux容器;
  • 一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows机器上;
  • 容器是完全使用沙箱机制,相互之间不会有任何接口。几乎没有性能开销,可以很容易地在机器和数据中心运行。

为什么用Docker

容器技术之前,火热的技术是虚拟机技术,而其最典型的代表就是 VMWareOpenStack

而Docker技术走热的原因,说白了就是“轻”,一种轻量化虚拟技术;

Docker的优缺点

1.启动时间

虚拟机虽然可以隔离出很多子电脑,但是占用空间大,启动慢;

而容器技术不需要虚拟整个操作系统,只需要虚拟一个小规模的环境,启动速度很快,几秒就能完成。

2.性能

Docker容器共享宿主机内核,系统级虚拟化,占用资源少,没有Hypervisor层开销,性能基本接近物理机;

虚拟机需要Hypervisor层支持,具有完整的GuestOS(虚拟操作系统),虚拟化开销大,因而降低性能,没有容器性能好

3.占用开销

此外,它占的空间很小,容器只需要MB级甚至KB级。

虚拟机一般要几GB到几十GB的空间

4.安全性

Docker容器由于共享宿主机内核,只是进程级隔离,因此隔离性和稳定性不如虚拟机,Docker容器具有一定权限访问宿主机内核,存在一定安全隐患;

Docker的三大核心

  • 镜像(Image)
  • 容器(Container)
  • 仓库(Repository)

Docker镜像,就像一个完整的文件包,它除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(例如环境变量)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。

容器的实质是进程,它运行与独属于自己的命名空间,类似在一个独立于宿主下的系统上操作(相当于小虚拟机),这种特性使得容器封装的应用比直接在宿主运行更加安全。

镜像构建完成后,可以很容易的在当前宿主机上运行;但是如果需要在其他服务器上使用这个镜像呢?

这时候就需要仓库,它的工作就是用来存放、发放镜像的——也就是所说的“Docker Registry

简而言之:一个 Docker Registry 中可以包含多个仓库Repository);每个仓库可以包含多个标签Tag);每个标签对应一个镜像。

Ubuntu20.04下部署Docker环境

1.安装

建议直接看官方文档

卸载旧版本

如果之前有安装过,建议清楚一下配置

sudo apt-get remove docker
sudo apt-get remove docker-engine
sudo apt-get remove docker.io
脚本安装

用APT安装比较麻烦,还要证书啥的;

而在测试或开发环境中 Docker 官方为了简化安装流程,提供了一套便捷的安装脚本,Ubuntu 系统上可以使用这套脚本安装,另外可以通过 --mirror 选项使用国内源进行安装:

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

我们建立一个文件夹,执行第一条命令下载脚本

然后运行脚本,并指定镜像,安装成功

建立用户组

默认情况下,docker 命令会使用 Unix socket 与 Docker 引擎通讯。而只有 root 用户和 docker 组的用户才可以访问 Docker 引擎的 Unix socket。出于安全考虑,一般 Linux 系统上不会直接使用 root 用户。因此,更好地做法是将需要使用 docker 的用户加入 docker 用户组。

建立 docker 组:

sudo groupadd docker

将当前用户加入 docker 组:

sudo usermod -aG docker $USER

测试是否安装成功
docker run --rm hello-world

不报错,就成功了

常用命令

启动Docker

sudo systemctl enable docker
sudo systemctl start docker

关闭Docker

sudo systemctl stop docker

Docker部署clash

准备配置文件:config.yaml

部署Clash核心

Clash 有官方的 Docker 部署教程,以及完整的配置项说明文档。有兴趣深入了解的可以看看,咱们简单粗暴点略过 docker-compose 直接上命令

进到我们新建的文件夹:

sudo docker run -d --name=clash -v "$PWD/config.yaml:/root/.config/clash/config.yaml" -p "7890:7890" -p "9090:9090" --restart=unless-stopped dreamacro/clash

图形化控制

1.在线控制台

http://yacd.haishan.me/

2.本地部署
git clone -b gh-pages https://github.com/haishanh/yacd.git

这是 yacd 作者编译好的版本,克隆下来之后用浏览器访问其中的 index.html 即可

3.docker 部署

Run: docker run -p 1234:80 -d --rm haishanh/yacd

4.一点小问题

本地部署yacd后,点击index.html,发现网页是空白的,按F12查看报错信息:

发现是因为谷歌浏览器不能通过本地文件的路径:file://XXX 去访问,只能通过http://xxx 的形式访问,所以报错

image-20220311131838303

然后我们直接通过下面的URL:http://127.0.0.1:8887/访问就行了;

不过还是在线访问简单!!!

参考博客:https://luckytdx.com/index.php/archives/58/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值