我对Docker的理解及基础使用
创作立场声明:个人理解,不喜勿饶。觉得好的,欢迎打赏~谢谢!
【1】序言
不知道什么时候起,经常看到通过Docker部署程序的文章。看了文章就觉得Docker很厉害,本来需要一堆代码才能部署好的网络程序,docker两三行代码就能搞定~然后就对Docker产生兴趣,百科是这样介绍的:
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
一脸懵逼!然后通过自己动手,部署了几个程序,包装了几个docker镜像,对Docker有了一定的了解。
【1.1】什么是Docker?
Docker的官网https://www.docker.com/
从我角度上来看,Docker就是一种虚拟化技术。例如沙盒软件,就是通过虚拟一个系统环境来运行软件却不影响现实中的电脑。而Docker,就是在电脑或者服务器,划出了一片硬件资源空间,给搭建好环境的程序使用,并且这片资源空间可随时回收。有没有觉得Docker像VM workstation?
举例:Docker就像一个类似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就是游戏商店。
【1.5】什么是宿主机?
也就是运行Docker的计算机。
举例:Docker就像Steam游戏平台,宿主机就是装Steam游戏平台的电脑。
【1.6】什么是反向代理
反向代理的作用是,让反向代理服务器来接受客户端的网络访问连接请求,然后服务器将请求有策略的转发给网络中实际工作的业务服务器,并将从业务服务器处理的结果,返回给网络上发起连接请求的客户端。
Docker容器是相对独立的,也就是docker运行的程序是独立的、不与计算机外界相连通。所以我们需要反向代理来搭个桥,把计算机外网与docker的网络相连接。
【1.7】Docker管理面板
Docker是一种虚拟化技术,要有可视化的操作界面才方便管理容器镜像,Docker管理面板知名的有Linux系统的Portainer,windows系统有官方的客户端,威联通NAS和华硕NAS使用的是Portainer面板,群晖NAS使用的是群晖自建面板。
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面板设置 存储、端口、环境变量 的参数,例如群晖:
【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),左上角选择离你最近的地区。
然后左边选择镜像工具-镜像加速器,加速地址就是你的专属镜像网址,操作文档显示各个系统的使用方法。
【4.2】Docker镜像加速
【4.2.1】群晖配置镜像加速:
--------------------
【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】全文完
觉得不错,打赏一二。不喜勿饶~
本文由颜小帅发表于什么值得买,严禁未经作者许可私自转载!








半边花园
校验提示文案
浪漫与矫情
校验提示文案
Hyerbolas
校验提示文案
刷哈存在感
校验提示文案
不务正业的码农
校验提示文案
zico
校验提示文案
王丶先生
校验提示文案
rkuk
校验提示文案
值友7399484362
校验提示文案
GelSV
校验提示文案
我有开心
校验提示文案
[已注销]
校验提示文案
路远求索
校验提示文案
mysoy
校验提示文案
值友7406467285
校验提示文案
青龙山精神病院6号床
校验提示文案
flygmw
校验提示文案
flygmw
校验提示文案
青龙山精神病院6号床
校验提示文案
值友7406467285
校验提示文案
mysoy
校验提示文案
不务正业的码农
校验提示文案
刷哈存在感
校验提示文案
zico
校验提示文案
路远求索
校验提示文案
王丶先生
校验提示文案
Hyerbolas
校验提示文案
半边花园
校验提示文案
浪漫与矫情
校验提示文案
[已注销]
校验提示文案
我有开心
校验提示文案
GelSV
校验提示文案
值友7399484362
校验提示文案
rkuk
校验提示文案