我对Docker的理解及基础使用

2021-08-30 21:44:09 133点赞 1100收藏 29评论

创作立场声明:个人理解,不喜勿饶。觉得好的,欢迎打赏~谢谢!

【1】序言

不知道什么时候起,经常看到通过Docker部署程序的文章。看了文章就觉得Docker很厉害,本来需要一堆代码才能部署好的网络程序,docker两三行代码就能搞定~然后就对Docker产生兴趣,百科是这样介绍的:

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

一脸懵逼!然后通过自己动手,部署了几个程序,包装了几个docker镜像,对Docker有了一定的了解。

【1.1】什么是Docker?

Docker的官网https://www.docker.com/

从我角度上来看,Docker就是一种虚拟化技术。例如沙盒软件,就是通过虚拟一个系统环境来运行软件却不影响现实中的电脑。而Docker,就是在电脑或者服务器,划出了一片硬件资源空间,给搭建好环境的程序使用,并且这片资源空间可随时回收。有没有觉得Docker像VM workstation

举例:Docker就像一个类似Steam的游戏平台。

Steam游戏平台Steam游戏平台

【1.2】什么是Docker Container容器?

我的理解,就是已经划定好的给某系统、软件进行运行的资源空间,这个容器里的程序是相对独立的。

举例:Docker就像Steam游戏平台,Docker容器就像Steam游戏平台里,下载安装好,你正在玩的游戏。

【1.3】什么是Docker Image镜像?

我的理解,就是打包好的程序,程序包含了所需要的系统环境,“开箱即用”。

举例:Docker就像Steam游戏平台,Docker镜像就是平台上的游戏,这些游戏不用给钱点下载就能安装游玩。

【1.4】什么是Docker Hub?

Docker Hub的官网https://hub.docker.com/

也就是Docker官方展示镜像的地方。

举例:Docker就像Steam游戏平台,Docker Hub就是游戏商店。

Steam游戏商店Steam游戏商店

【1.5】什么是宿主机?

也就是运行Docker的计算机。

举例:Docker就像Steam游戏平台,宿主机就是装Steam游戏平台的电脑。

【1.6】什么是反向代理

反向代理的作用是,让反向代理服务器来接受客户端的网络访问连接请求,然后服务器将请求有策略的转发给网络中实际工作的业务服务器,并将从业务服务器处理的结果,返回给网络上发起连接请求的客户端。

Docker容器是相对独立的,也就是docker运行的程序是独立的、不与计算机外界相连通。所以我们需要反向代理来搭个桥,把计算机外网与docker的网络相连接。

【1.7】Docker管理面板

Docker是一种虚拟化技术,要有可视化的操作界面才方便管理容器镜像,Docker管理面板知名的有Linux系统的Portainer,windows系统有官方的客户端,威联通NAS和华硕NAS使用的是Portainer面板,群晖NAS使用的是群晖自建面板。

PortainerPortainer

Portainer安装https://docs.portainer.io/v/ce-2.9/start/intro

【2】Docker的安装

【2.1】Linux安装/升级Docker客户端

官方安装脚本自动安装

curl -fsSL https://get.docker.com | bash -s docker

--------------------

【2.2】Mac安装/升级Docker客户端

对于10.10.3以下的用户 推荐使用Docker Toolbox

Mac安装文件:http://mirrors.aliyun.com/docker-toolbox/mac/docker-toolbox/

对于10.10.3以上的用户 推荐使用Docker for Mac

Mac安装文件:http://mirrors.aliyun.com/docker-toolbox/mac/docker-for-mac/

--------------------

【2.3】Windows安装/升级Docker客户端

对于Windows 10以下的用户,推荐使用Docker Toolbox

Windows安装文件:http://mirrors.aliyun.com/docker-toolbox/windows/docker-toolbox/

对于Windows 10以上的用户 推荐使用Docker for Windows

Windows安装文件:http://mirrors.aliyun.com/docker-toolbox/windows/docker-for-windows/

【3】Docker镜像的安装使用

一般docker镜像都会在介绍那给出镜像安装方法,例如bitwarden_rs:

docker pull vaultwarden/server:latest
docker run -d --name vaultwarden -v /vw-data/:/data/ -p 80:80 vaultwarden/server:latest

docker pull vaultwarden/server:latest

理解:推送下载latest版本的docker镜像vaultwarden/server

----------

docker run ... vaultwarden/server:latest

理解:Docker启动镜像vaultwarden/server:latest

----------

--name vaultwarden

理解:容器命名为vaultwarden

----------

-v /vw-data/:/data/

理解:本地文件夹/vw-data/映射容器文件夹/data/,为知笔记数据实际保存在本地文件夹/vw-data/,此文件夹要提前创建

----------

-p 80:80

理解:本地端口与容器端口映射,访问链:外网访问 - 反代理端口 - 本地端口 - 容器端口

----------

-v /etc/localtime:/etc/localtime

理解:容器时间与本地时间同步

----------

--restart=always

理解:容器自启动

根据代码可以方便地在Docker面板设置 存储端口环境变量 的参数,例如群晖:

我对Docker的理解及基础使用

【4】镜像加速

Docker Hub的服务器在国外,国内下载慢,我们可以添加镜像网址来加速下载。

【4.1】Docker镜像网址:

Docker中国https://registry.docker-cn.com

科大镜像https://ustc-edu-cn.mirror.aliyuncs.com/

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

网易云https://hub-mirror.c.163.com/

腾讯云https://mirror.ccs.tencentyun.com/

Azure 中国镜像https://dockerhub.azk8s.cn

阿里云https://<你的ID>.mirror.aliyuncs.com

【4.1.1】阿里云获取镜像网址:

登录阿里云(https://account.aliyun.com/login/login.htm?oauth_callback=https%3A%2F%2Fcr.console.aliyun.com%2F&lang=en),左上角选择离你最近的地区。

我对Docker的理解及基础使用

然后左边选择镜像工具-镜像加速器,加速地址就是你的专属镜像网址,操作文档显示各个系统的使用方法。

我对Docker的理解及基础使用

【4.2】Docker镜像加速

【4.2.1】群晖配置镜像加速:

我对Docker的理解及基础使用

--------------------

【4.2.2】Linux配置镜像加速:

通过修改daemon配置文件/etc/docker/daemon.json来使用加速器

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["镜像网址"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

--------------------

【4.2.3】Mac配置镜像加速:

安装了Docker Toolbox的用户:

创建一台安装有Docker环境的Linux虚拟机,指定机器名称为default,同时配置Docker加速器地址。

docker-machine create --engine-registry-mirror=镜像网址 -d virtualbox default

查看机器的环境配置,并配置到本地,并通过Docker客户端访问Docker服务。

docker-machine env defaulteval "$(docker-machine env default)"docker info

----------

安装了Docker for Mac的用户:

在任务栏点击 Docker Desktop 应用图标 -> Perferences,在左侧导航菜单选择 Docker Engine,在右侧输入栏编辑 json 文件。将

镜像网址加到"registry-mirrors"的数组里,点击 Apply & Restart按钮,等待Docker重启并应用配置的镜像加速器。

--------------------

【4.2.4】Windows配置镜像加速:

安装了Docker Toolbox的用户:

创建一台安装有Docker环境的Linux虚拟机,指定机器名称为default,同时配置Docker加速器地址。

docker-machine create --engine-registry-mirror=镜像网址 -d virtualbox default

查看机器的环境配置,并配置到本地,并通过Docker客户端访问Docker服务。

docker-machine env defaulteval "$(docker-machine env default)"docker info

----------

安装了Docker for Windows的用户:

在系统右下角托盘图标内右键菜单选择 Settings,打开配置窗口后左侧导航菜单选择 Docker Daemon。编辑窗口内的JSON串,填写下方加速器地址:

{
"registry-mirrors": ["镜像网址"]
}

编辑完成后点击 Apply 保存按钮,等待Docker重启并应用配置的镜像加速器。

--------------------

注意:

Docker for Windows 和 Docker Toolbox互不兼容,如果同时安装两者的话,需要使用hyperv的参数启动。

docker-machine create --engine-registry-mirror=镜像网址 -d hyperv default

Docker for Windows 有两种运行模式,一种运行Windows相关容器,一种运行传统的Linux容器。同一时间只能选择一种模式运行。

注意:

最好把代码复制到文本文档,修改镜像网址为正确的镜像加速网址,再复制到代码运行框运行,少个空格都会出错。

【5】全文完

觉得不错,打赏一二。不喜勿饶~

本文由颜小帅发表于什么值得买,严禁未经作者许可私自转载!

展开 收起
29评论

  • 精彩
  • 最新
  • 以为进了csdn

    校验提示文案

    提交
    做个笔记,顺便赚金币 [耶]

    校验提示文案

    提交
    收起所有回复
  • 装了Windows10版的docker,不会用,无奈又虚拟机搞了一个centos8,发现有兼容性问题,只好重装了一次centos7,这玩意真的贼稳定

    校验提示文案

    提交
    win10装docker要开hyper-v功能,然后用命令行或power shell输命令运行的

    校验提示文案

    提交
    最好不要在 win下玩docker

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • dokcer配置加速是指下载速度加速吗?

    校验提示文案

    提交
    对,docker镜像的服务器在国外,配置了镜像加速网址,相当于在国内服务器下载

    校验提示文案

    提交
    收起所有回复
  • 请问有可以在docker for mac上运行的windows镜像吗?

    校验提示文案

    提交
    这个没留意,不过不建议用docker运行win,这相当于套了两层虚拟机运行win,还不如双系统或者虚拟机运行win

    校验提示文案

    提交
    嗯明白了多谢哈🙏

    校验提示文案

    提交
    收起所有回复
  • 可怕。我现在弄k8s脑壳大

    校验提示文案

    提交
    我看到k8s都脑壳疼

    校验提示文案

    提交
    其实还是还好吧,入门确实得认真学学云原生太多了

    校验提示文案

    提交
    收起所有回复
  • docket真是个好东西,学习了

    校验提示文案

    提交
  • 群晖用这个弄了个青龙面板,每天自动挣京豆美滋滋。

    校验提示文案

    提交
    大兄弟,借一步说话

    校验提示文案

    提交
    咱们交流一下 [高兴]

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • -v 选项对应的host文件夹可以不需要提前创建,没有的时候会自动生成。

    校验提示文案

    提交
  • 支持一下吧 [高兴]

    校验提示文案

    提交
  • 支持支持!

    校验提示文案

    提交
  • 赞一个! [欢呼]

    校验提示文案

    提交
  • 直接输命令是自动安装完成,我是想最好提前创建存储的文件夹,怕到时有权限问题

    校验提示文案

    提交
  • 收藏起来了

    校验提示文案

    提交
  • -v /vw-data/:/data/ 纠正下:vw-data本地无需提前创建哦 [邪恶]

    校验提示文案

    提交
  • 求推荐好玩的镜像 除了qb

    校验提示文案

    提交
  • 终于看到了真正适合我这种啥也不会的新手教程

    校验提示文案

    提交
  • 收藏学习了

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
相关好价
最新文章 热门文章
1.1K
扫一下,分享更方便,购买更轻松