阅读 14542

【每天30分钟Get新技能】docker容器篇(一)

Docker是什么

Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口。它是目前最流行的 Linux 容器解决方案。

Docker 将应用程序与该程序的依赖,打包在一个文件里面。运行这个文件,就会生成一个虚拟容器。程序在这个虚拟容器里运行,就好像在真实的物理机上运行一样。有了 Docker,就不用担心环境问题。

总体来说,Docker 的接口相当简单,用户可以方便地创建和使用容器,把自己的应用放入容器。容器还可以进行版本管理、复制、分享、修改,就像管理普通的代码一样。

Docker基本概念

Docker 主要包含三个基本概念,分别是镜像、容器和仓库,理解了这三个概念,就理解了 Docker 的整个生命周期。以下简要总结一下这三点。

镜像:

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

容器:

容器的实质是进程,但与直接在宿主执行的进程不同,容器进程运行于属于自己的独立的命名空间容器可以被。创建、启动、停止、删除和暂停等等,说到镜像与容器之间的关系,可以类比面向对象程序设计中的类和实例。

仓库:

镜像构建完成后,可以很容易的在当前宿主机上运行,但是,如果需要在其它服务器上使用这个镜像,我们就需要一个集中的存储、分发镜像的服务,Docker Registry 就是这样的服务。一个 Docker Registry 中可以包含多个仓库;每个仓库可以包含多个标签;每个标签对应一个镜像,其中标签可以理解为镜像的版本号。

Docker 用途

Docker 的主要用途,目前有三大类。

(1)提供一次性的环境。比如,本地测试他人的软件、持续集成的时候提供单元测试和构建的环境。

(2)提供弹性的云服务。因为 Docker 容器可以随开随关,很适合动态扩容和缩容。

(3)组建微服务架构。通过多个容器,一台机器可以跑多个服务,因此在本机就可以模拟出微服务架构。

Docker安装

Docker 分为 CE 和 EE 两大版本。CE 即社区版(免费,支持周期 7 个月),EE 即企业版,强调安全,付费使用,支持周期 24 个月。

Docker CE 分为 stable testnightly 三个更新频道。

官方网站上有各种环境下的 安装指南,这里主要介绍 Docker CE 在 LinuxWindows 10macOS 上的安装。

Ubuntu

系统要求

Docker CE 支持以下版本的 Ubuntu 操作系统:

  • Ubuntu Focal 20.04 (LTS)
  • Eoan 19.10
  • Bionic 18.04 (LTS)
  • Xenial 16.04 (LTS)

Docker CE 可以安装在 64 位的 x86 平台或 ARM 平台上。Ubuntu 发行版中,LTS(Long-Term-Support)长期支持版本,会获得 5 年的升级维护支持,这样的版本会更稳定,因此在生产环境中推荐使用 LTS 版本。

卸载旧版本

旧版本的 Docker 称为 docker 或者 docker-engine,使用以下命令卸载旧版本:

$ sudo apt-get remove docker \
               docker-engine \
               docker.io
复制代码

使用 APT 安装

由于 apt 源使用 HTTPS 以确保软件下载过程中不被篡改。因此,我们首先需要添加使用 HTTPS 传输的软件包以及 CA 证书。

$ sudo apt-get update
$ sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    software-properties-common
复制代码

鉴于国内网络问题,强烈建议使用国内源,官方源请在注释中查看。

为了确认所下载软件包的合法性,需要添加软件源的 GPG 密钥。

$ curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
# 官方源
# $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
复制代码

然后,我们需要向 source.list 中添加 Docker 软件源

$ sudo add-apt-repository \
    "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu \
    $(lsb_release -cs) \
    stable"
# 官方源
# $ sudo add-apt-repository \
#    "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
#    $(lsb_release -cs) \
#    stable"
复制代码

以上命令会添加稳定版本的 Docker CE APT 镜像源,如果需要测试或每日构建版本的 Docker CE 请将 stable 改为 test 或者 nightly。

安装 Docker CE

更新 apt 软件包缓存,并安装 docker-ce

$ sudo apt-get update
$ sudo apt-get install docker-ce
复制代码

使用脚本自动安装

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

$ curl -fsSL get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh --mirror Aliyun
# $ sudo sh get-docker.sh --mirror AzureChinaCloud
复制代码

执行这个命令后,脚本就会自动的将一切准备工作做好,并且把 Docker CE 的稳定(stable)版本安装在系统中。

启动 Docker CE

$ sudo systemctl enable docker
$ sudo systemctl start docker
复制代码

Debian

系统要求

Docker CE 支持以下版本的 Debian 操作系统:

  • Buster 10
  • Stretch 9

卸载旧版本

旧版本的 Docker 称为 docker 或者 docker-engine,使用以下命令卸载旧版本:

$ sudo apt-get remove docker \
               docker-engine \
               docker.io
复制代码

使用 APT 安装

由于 apt 源使用 HTTPS 以确保软件下载过程中不被篡改。因此,我们首先需要添加使用 HTTPS 传输的软件包以及 CA 证书。

$ sudo apt-get update
$ sudo apt-get install \
     apt-transport-https \
     ca-certificates \
     curl \
     gnupg2 \
     lsb-release \
     software-properties-common
复制代码

鉴于国内网络问题,强烈建议使用国内源,官方源请在注释中查看。

为了确认所下载软件包的合法性,需要添加软件源的 GPG 密钥。

$ curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/debian/gpg | sudo apt-key add -
# 官方源
# $ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
复制代码

然后,我们需要向 source.list 中添加 Docker CE 软件源:

$ sudo add-apt-repository \
   "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/debian \
   $(lsb_release -cs) \
   stable"
# 官方源
# $ sudo add-apt-repository \
#    "deb [arch=amd64] https://download.docker.com/linux/debian \
#    $(lsb_release -cs) \
#    stable"
复制代码

以上命令会添加稳定版本的 Docker CE APT 源,如果需要测试或每日构建版本的 Docker CE 请将 stable 改为 test 或者 nightly。

安装 Docker CE

更新 apt 软件包缓存,并安装 docker-ce

$ sudo apt-get update
$ sudo apt-get install docker-ce
复制代码

使用脚本自动安装

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

$ curl -fsSL get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh --mirror Aliyun
# $ sudo sh get-docker.sh --mirror AzureChinaCloud
复制代码

执行这个命令后,脚本就会自动的将一切准备工作做好,并且把 Docker CE 的稳定(stable)版本安装在系统中。

启动 Docker CE

$ sudo systemctl enable docker
$ sudo systemctl start docker
复制代码

CentOS

系统要求

Docker CE 支持 64 位版本 CentOS 7,并且要求内核版本不低于 3.10。 CentOS 7 满足最低内核的要求,但由于内核版本比较低,部分功能(如 overlay2 存储层驱动)无法使用,并且部分功能可能不太稳定。

卸载旧版本

旧版本的 Docker 称为 docker 或者 docker-engine,使用以下命令卸载旧版本:

$ sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine
复制代码

使用 yum 安装

执行以下命令安装依赖包:

$ sudo yum install -y yum-utils \
           device-mapper-persistent-data \
           lvm2
复制代码

鉴于国内网络问题,强烈建议使用国内源,官方源请在注释中查看。

执行下面的命令添加 yum 软件源:

$ sudo yum-config-manager \
    --add-repo \
    https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo
$ sudo sed -i 's/download.docker.com/mirrors.ustc.edu.cn\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo

# 官方源
# $ sudo yum-config-manager \
#     --add-repo \
#     https://download.docker.com/linux/centos/docker-ce.repo
复制代码

如果需要测试版本的 Docker CE 请使用以下命令:

$ sudo yum-config-manager --enable docker-ce-test
复制代码

如果需要每日构建版本的 Docker CE 请使用以下命令:

$ sudo yum-config-manager --enable docker-ce-nightly
复制代码

安装 Docker CE

更新 yum 软件源缓存,并安装 docker-ce

$ sudo yum makecache fast
$ sudo yum install docker-ce
复制代码

使用脚本自动安装

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

$ curl -fsSL get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh --mirror Aliyun
# $ sudo sh get-docker.sh --mirror AzureChinaCloud
复制代码

执行这个命令后,脚本就会自动的将一切准备工作做好,并且把 Docker CE 的稳定(stable)版本安装在系统中。

启动 Docker CE

$ sudo systemctl enable docker
$ sudo systemctl start docker
复制代码

建立 docker 用户组

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

建立 docker 组:

$ sudo groupadd docker
复制代码

将当前用户加入 docker 组:

$ sudo usermod -aG docker $USER
复制代码

退出当前终端并重新登录,进行如下测试。

测试 Docker 是否安装正确

$ docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
0e03bdcc26d7: Pull complete
Digest: sha256:49a1c8800c94df04e9658809b006fd8a686cab8028d33cfba2cc049724254202
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/
复制代码

若能正常输出以上信息,则说明安装成功。

macOS

系统要求

Docker Desktop for Mac 要求系统最低为 macOS Catalina 10.13。

安装

使用 Homebrew 安装

HomebrewCask 已经支持 Docker Desktop for Mac,因此可以很方便的使用 Homebrew Cask 来进行安装:

$ brew cask install docker
复制代码
手动下载安装

如果需要手动下载,请点击以下链接下载 StableEdge 版本的 Docker Desktop for Mac。

如同 macOS 其它软件一样,安装也非常简单,双击下载的 .dmg 文件,然后将那只叫 Moby 的鲸鱼图标拖拽到 Application 文件夹即可(其间需要输入用户密码)。

运行

从应用中找到 Docker 图标并点击运行。

Windows 10

系统要求

Docker Desktop for Windows 支持 64 位版本的 Windows 10 Pro,且必须开启 Hyper-V(若版本为 v2004 及以上则无需开启 Hyper-V),或者 64 位版本的 Windows 10 Home v2004 及以上版本。

安装

手动下载安装

点击以下链接下载 [Stable](download.docker.com/win/stable/… Desktop Installer.exe) 或 [Edge](download.docker.com/win/edge/Do… Desktop Installer.exe) 版本的 Docker Desktop for Windows。

下载好之后双击 Docker Desktop Installer.exe 开始安装。

运行

在 Windows 搜索栏输入 Docker 点击 Docker Desktop 开始运行。

Docker实战

docker安装nginx

搜索镜像

你可以通过 docker search 命令来查找官方仓库中的镜像,并利用 docker pull 命令来将它下载到本地。

例如以 nginx 为关键词进行搜索:

$ docker search nginx
NAME                               DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
nginx                              Official build of Nginx.                        13580               [OK]
jwilder/nginx-proxy                Automated Nginx reverse proxy for docker con…   1857                                    [OK]
richarvey/nginx-php-fpm            Container running Nginx + PHP-FPM capable of…   782                                     [OK]
linuxserver/nginx                  An Nginx container, brought to you by LinuxS…   126
bitnami/nginx                      Bitnami nginx Docker Image                      88                                      [OK]
tiangolo/nginx-rtmp                Docker image with Nginx using the nginx-rtmp…   86                                      [OK]
jc21/nginx-proxy-manager           Docker container for managing Nginx proxy ho…   76
alfg/nginx-rtmp                    NGINX, nginx-rtmp-module and FFmpeg from sou…   72                                      [OK]
nginxdemos/hello                   NGINX webserver that serves a simple page co…   58                                      [OK]
jlesage/nginx-proxy-manager        Docker container for Nginx Proxy Manager        53                                      [OK]
nginx/nginx-ingress                NGINX Ingress Controller for Kubernetes         37
privatebin/nginx-fpm-alpine        PrivateBin running on an Nginx, php-fpm & Al…   31                                      [OK]
schmunk42/nginx-redirect           A very simple container to redirect HTTP tra…   18                                      [OK]
nginxinc/nginx-unprivileged        Unprivileged NGINX Dockerfiles                  16
nginx/nginx-prometheus-exporter    NGINX Prometheus Exporter                       14
raulr/nginx-wordpress              Nginx front-end for the official wordpress:f…   13                                      [OK]
centos/nginx-112-centos7           Platform for running nginx 1.12 or building …   13
centos/nginx-18-centos7            Platform for running nginx 1.8 or building n…   13
blacklabelops/nginx                Dockerized Nginx Reverse Proxy Server.          13                                      [OK]
mailu/nginx                        Mailu nginx frontend                            7                                       [OK]
sophos/nginx-vts-exporter          Simple server that scrapes Nginx vts stats a…   7                                       [OK]
bitwarden/nginx                    The Bitwarden nginx web server acting as a r…   7
bitnami/nginx-ingress-controller   Bitnami Docker Image for NGINX Ingress Contr…   6                                       [OK]
wodby/nginx                        Generic nginx                                   1                                       [OK]
ansibleplaybookbundle/nginx-apb    An APB to deploy NGINX                          1                                       [OK]
复制代码

可以看到返回了很多包含关键字的镜像,其中包括镜像名字、描述、收藏数(表示该镜像的受关注程度)、是否官方创建(OFFICIAL)、是否自动构建 (AUTOMATED)。

拉取镜像

$ docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
bf5952930446: Pull complete
ba755a256dfe: Pull complete
c57dd87d0b93: Pull complete
d7fbf29df889: Pull complete
1f1070938ccd: Pull complete
Digest: sha256:36b74457bccb56fbf8b05f79c85569501b721d4db813b684391d63e02287c0b2
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest
复制代码

查看镜像

使用以下命令来查看是否已安装了 nginx:

$ docker images
REPOSITORY                                               TAG                 IMAGE ID            CREATED             SIZE
nginx                                                    latest              08393e824c32        4 days ago          132MB
复制代码

在上面的信息中可以看到我们已经安装了最新版本(latest)的 nginx 镜像。

运行容器

拉取镜像完成后,我们可以使用以下命令来运行 nginx 容器:

$ docker run --name nginx-test -p 8081:80 -d nginx
复制代码

参数说明:

  • --name nginx-test:容器名称。
  • -p 8081:80: 端口进行映射,将本地 8081 端口映射到容器内部的 80 端口。
  • -d nginx: 设置容器在在后台一直运行。

测试安装

最后我们可以通过浏览器可以直接访问 8081 端口的 nginx 服务。

此处通过安装nginx容器,简单的介绍了docker的一些基础命令。其他更多命令可以参考官网文档。

Docker 常用命令

Docker镜像常用命令

下面介绍几种镜像中常用的操作命令。

docker image pull是下载镜像的命令。镜像从远程镜像仓库服务的仓库中下载。

默认情况下,镜像会从 Docker Hub 的仓库中拉取。

docker image pull alpine:latest命令会从 Docker Hub 的 alpine 仓库中拉取标签为 latest 的镜像。

docker image ls列出了本地 Docker 主机上存储的镜像。可以通过 --digests 参数来查看镜像的 SHA256 签名。

docker image inspect命令非常有用!该命令完美展示了镜像的细节,包括镜像层数据和元数据。

docker image rm用于删除镜像。

docker image rm alpine:latest命令的含义是删除 alpine:latest 镜像。当镜像存在关联的容器,并且容器处于运行(Up)或者停止(Exited)状态时,不允许删除该镜像。

Docker容器常用命令

1) docker container run

启动新容器的命令。该命令的最简形式接收镜像和命令作为参数。镜像用于创建容器,而命令则是希望容器运行的应用。

docker container run -it ubuntu /bin/bash 命令会在前台启动一个 Ubuntu 容器,并运行 Bash Shell。

Ctrl-PQ 会断开 Shell 和容器终端之间的链接,并在退出后保持容器在后台处于运行(UP)状态。

2) docker container ls

用于列出所有在运行(UP)状态的容器。如果使用 -a 标记,还可以看到处于停止(Exited)状态的容器。

3) docker container exec

用于在运行状态的容器中,启动一个新进程。该命令在将 Docker 主机 Shell 连接到一个运行中容器终端时非常有用。

docker container exec -it <container-name or container-id> bash 命令会在容器内部启动一个 Bash Shell 进程,并连接到该 Shell。

为了使该命令生效,用于创建容器的镜像必须包含 Bash Shell。

4) docker container stop

此命令会停止运行中的容器,并将状态置为 Exited(0)。

该命令通过发送 SIGTERM 信号给容器内 PID 为 1 的进程达到目的。

如果进程没有在 10s 之内得到清理并停止运行,那么会接着发送 SIGKILL 信号来强制停止该容器。

docker container stop 可以接收容器 ID 以及容器名称作为参数。

5) docker container start

重启处于停止(Exited)状态的容器。可以在 docker container start 命令中指定容器的名称或者 ID。

6) docker container rm

删除停止运行的容器。可以通过容器名称或者 ID 来指定要删除的容器。推荐首先使用 docker container stop 命令停止容器,然后使用 docker container rm 来完成删除。

7) docker container inspect

显示容器的配置细节和运行时信息。该命令接收容器名称和容器 ID 作为主要参数。

官方阅读链接:docs.docker.com/engine/refe…

Docker 加速器是什么

使用 Docker 的时候,需要经常从官方获取镜像,但是由于显而易见的网络原因,拉取镜像的过程非常耗时,严重影响使用 Docker 的体验。因 此 DaoCloud 推出 Docker 加速器解决这个难题,通过智能路由和缓存机制,极大提升了国内网络访问 Docker Hub 的速度,目前已经拥有了广泛的用户群体,并得到了 Docker 官方的大力推荐。如果您是在国内的网络环境使用 Docker,那么 Docker 加速器一定能帮到您。

Docker Hub 镜像加速器列表

镜像加速器镜像加速器地址专属加速器其它加速
Docker 中国官方镜像https://registry.docker-cn.comDocker Hub
DaoCloud 镜像站http://f1361db2.m.daocloud.io可登录,系统分配Docker Hub
Azure 中国镜像https://dockerhub.azk8s.cnDocker Hub、GCR、Quay
科大镜像站https://docker.mirrors.ustc.edu.cnDocker Hub、GCRQuay
阿里云https://<your_code>.mirror.aliyuncs.com需登录,系统分配Docker Hub
七牛云https://reg-mirror.qiniu.comDocker Hub、GCR、Quay
网易云https://hub-mirror.c.163.comDocker Hub
腾讯云https://mirror.ccs.tencentyun.comDocker Hub

Docker Hub 镜像加速器配置

linux

创建或修改 /etc/docker/daemon.json 文件,修改为如下形式

{
    "registry-mirrors": [
        "加速地址"
    ],
    "insecure-registries": []
}
复制代码

然后重启docker即可

$ sudo systemctl daemon-reload
$ sudo systemctl restart docker
复制代码

Mac

右键点击桌面顶栏的 docker 图标,选择 Preferences ,在 Daemon 标签(Docker 17.03 之前版本为 Advanced 标签)下的 Registry mirrors 列表中加入加速地址。点击 Apply & Restart 按钮使设置生效。

如图所示

image-20200809171907682

image-20200809172307328

Windows

在桌面右下角状态栏中右键 docker 图标,修改在 Docker Daemon 标签页中的 json ,把 加速地址加到"registry-mirrors"的数组里。点击 Apply 使设置生效。

如图所示

image-20200809173030151

image-20200809173130377

验证Docker Hub加速器

命令行输出docker info,如果从结果中看到了如下内容,说明配置成功。

[.....]
egistry Mirrors:
  https://hub-mirror.c.163.com/
  [....]
复制代码

Docker Hub 镜像测速

通过pull拉取nginx镜像,测试速度。使用 time 统计所花费的总时间。测速前先移除本地的镜像!

$ docker rmi nginx:latest
$ time docker pull nginx:latest
latest: Pulling from library/nginx
bf5952930446: Pull complete
ba755a256dfe: Pull complete
c57dd87d0b93: Pull complete
d7fbf29df889: Pull complete
1f1070938ccd: Pull complete
Digest: sha256:36b74457bccb56fbf8b05f79c85569501b721d4db813b684391d63e02287c0b2
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest
docker pull nginx:latest  0.09s user 0.05s system 0% cpu 26.465 total
复制代码

有趣的docker镜像

镜像①:rastasheep/ubuntu-sshd (带ssh的ubuntu)

地址:hub.docker.com/r/rastashee…

sudo docker run -d -p 22:22 rastasheep/ubuntu-sshd:16.04
复制代码

用户名、密码为root


镜像②:itscaro/debian-ssh (带ssh的ubuntu)

地址:hub.docker.com/r/itscaro/d…

sudo docker run -d -p 22:22 itscaro/debian-ssh
复制代码

用户名、密码为root


镜像③:tutum/centos (带ssh的centos)

地址:hub.docker.com/r/tutum/cen…

sudo docker run -d -p 22:22 tutum/centos

(centos7:tutum/centos:centos7 )

用户名root,

密码随机,请执行 docker logs <CONTAINER_ID> 查看

这个作者还有好多好东西:hub.docker.com/r/tutum/cen…


镜像④:alexwhen/docker-2048(游戏2048)

地址:hub.docker.com/r/alexwhen/…

sudo docker run -d -p 80:80 alexwhen/docker-2048


镜像⑤:dorowu/ubuntu-desktop-lxde-vnc(noVNC、Firefox51)

地址:hub.docker.com/r/dorowu/ub…

docker run -it -p 80:80 dorowu/ubuntu-desktop-lxde-vnc

Browse http://localhost


镜像⑥:consol/centos-xfce-vnc (VNC、noVNC、密码、chrome、Firefox45)

地址:hub.docker.com/r/consol/ub…

run -it -p 5901:5901 -p 6901:6901 -e “VNC_PW=my-new-password” -e VNC_RESOLUTION=800×600 consol/centos-xfce-vnc

默认VNC密码:vncpassword

VNC-Server (default VNC port 5901)

noVNC – HTML5 VNC client (default http port 6901)

其他相关

onsol/centos-xfce-vnc: Centos7 with Xfce4 UI session

consol/ubuntu-xfce-vnc: Ubuntu with Xfce4 UI session

consol/centos-icewm-vnc: dev Centos7 with IceWM UI session

consol/ubuntu-icewm-vnc: dev Ubuntu with IceWM UI session


镜像⑦:fish/peerflix-server (支持磁力,种子)

地址:hub.docker.com/r/fish/peer…

docker run -it -p 9000:9000 fish/peerflix-server

Browse http://localhost:9000/


镜像⑧:jpillora/cloud-torrent(种子下载,搜索)

地址:hub.docker.com/r/jpillora/…

docker run -d -p 3000:3000 -v /path/to/my/downloads:/downloads jpillora/cloud-torrent

Browse http://localhos


镜像⑨:jim3ma/google-mirror(google镜像,如需ssl要手动添加)

地址:hub.docker.com/r/jim3ma/go…

docker run -d -p 80:80 jim3ma/google-mirror

Browse http://localhos


镜像⒑:google-reverse-proxy(google镜像,有ssl)

地址:hub.docker.com/r/jokester/…

docker run -d –publish 54321:20081 –restart=always jokester/google-reverse-proxy

Browse https://ip:54321/


镜像⒒:forsaken-mail(临时邮箱)

地址:hub.docker.com/r/rockmaity…

docker run –name forsaken-mail -itd -p 25:25 -p 3000:3000 rockmaity/forsaken-mail

Browse http://ip:3000/


镜像⒓:imdjh/owncloud-with-ocdownloader(owncloud,torrent,aria2,youtube-dl)

地址:hub.docker.com/r/imdjh/own…

docker run -d -p 80:80 -e OWNCLOUD_VERSION=9.1.4 -v /var/www/html/data:/var/www/html/data imdjh/owncloud-with-ocdownloader

Browse http://ip/


镜像⒔:v2ray/official(v2ray)

地址:hub.docker.com/r/v2ray/off… docker run -d -p 8001:8001 v2ray/official

参考:liyuans.com/archives/ar…


镜像⒕:timonier/aria2

地址:hub.docker.com/r/timonier/…

docker run -i -t -v /data:/data –net host timonier/aria2 –dir=/data –enable-rpc –rpc-listen-all=true

配合使用:timonier/webui-aria2(aria2web管理)

地址:hub.docker.com/r/timonier/…

docker run -i -t -p 80:80 timonier/webui-aria2


镜像15:jaegerdocker/pan

Docker Hub: hub.docker.com/r/jaegerdoc…

简介:Docker-Pan: Filerun + AriaNg + Aria2 实现离线下载及在线播放

详细介绍:老司机使用 docker-pan 一键搭建可离线磁力种子的私有云盘,可在线播放预览文件

www.v2ex.com/t/383801


镜像16:aria2-ariang-x-docker-compose

代码地址: github.com/wahyd4/aria…

简介:docker-compose: docker-pan 老司机优化版 / 在线下载 BT 磁链 / 在线观看 / 全功能文件管理 / 云盘应用

详情:老司机优化版:使用 docker / docker-compose 搭建在线下载 BT, 磁力链接,在线观看,全功能文件管理,云盘应用

www.v2ex.com/t/385118

附:参考资料

docs.docker.com/registry/re…

y0ngb1n.github.io/a/docker-re…

Docker 命令参考文档

Docker 入门教程

Docker安装文档

yeasy.gitbook.io/docker_prac…