Docker

Windows Docker 安装

Docker 并非是一个通用的容器工具,它依赖于已存在并运行的 Linux 内核环境。

Docker 实质上是在已经运行的 Linux 下制造了一个隔离的文件环境,因此它执行的效率几乎等同于所部署的 Linux 主机。

因此,Docker 必须部署在 Linux 内核的系统上。如果其他系统想部署 Docker 就必须安装一个虚拟 Linux 环境。

在 Windows 上部署 Docker 的方法都是先安装一个虚拟机,并在安装 Linux 系统的的虚拟机中运行 Docker。

Win10 系统

Docker Desktop 是 Docker 在 Windows 10 和 macOS 操作系统上的官方安装方式,这个方法依然属于先在虚拟机中安装 Linux 然后再安装 Docker 的方法。

Docker Desktop 官方下载地址: https://hub.docker.com/editions/community/docker-ce-desktop-windows

注意:此方法仅适用于 Windows 10 操作系统专业版、企业版、教育版和部分家庭版!

安装 Hyper-V

Hyper-V 是微软开发的虚拟机,类似于 VMWare 或 VirtualBox,仅适用于 Windows 10。这是 Docker Desktop for Windows 所使用的虚拟机。

但是,这个虚拟机一旦启用,QEMU、VirtualBox 或 VMWare Workstation 15 及以下版本将无法使用!如果你必须在电脑上使用其他虚拟机(例如开发 Android 应用必须使用的模拟器),请不要使用 Hyper-V!

开启 Hyper-V

程序和功能

启用或关闭Windows功能

选中Hyper-V

也可以通过命令来启用 Hyper-V ,请右键开始菜单并以管理员身份运行 PowerShell,执行以下命令:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All

安装 Docker Desktop for Windows

点击 Get started with Docker Desktop,并下载 Windows 的版本,如果你还没有登录,会要求注册登录:

运行安装文件

双击下载的 Docker for Windows Installer 安装文件,一路 Next,点击 Finish 完成安装。

安装完成后,Docker 会自动启动。通知栏上会出现个小鲸鱼的图标,这表示 Docker 正在运行。

桌边也会出现三个图标,如下图所示:

我们可以在命令行执行 docker version 来查看版本号,docker run hello-world 来载入测试镜像测试。

如果没启动,你可以在 Windows 搜索 Docker 来启动:

启动后,也可以在通知栏上看到小鲸鱼图标:

如果启动中遇到因 WSL 2 导致地错误,请安装 WSL 2

安装之后,可以打开 PowerShell 并运行以下命令检测是否运行成功:

docker run hello-world

在成功运行之后应该会出现以下信息:


win7、win8 系统

win7、win8 等需要利用 docker toolbox 来安装,国内可以使用阿里云的镜像来下载,下载地址:http://mirrors.aliyun.com/docker-toolbox/windows/docker-toolbox/

安装比较简单,双击运行,点下一步即可,可以勾选自己需要的组件:

docker toolbox 是一个工具集,它主要包含以下一些内容:

下载完成之后直接点击安装,安装成功后,桌边会出现三个图标,如下图所示:

点击 Docker QuickStart 图标来启动 Docker Toolbox 终端。

如果系统显示 User Account Control 窗口来运行 VirtualBox 修改你的电脑,选择 Yes。

$ 符号那里可以输入以下命令来执行。

$ docker run hello-world
 Unable to find image 'hello-world:latest' locally
 Pulling repository hello-world
 91c95931e552: Download complete
 a8219747be10: Download complete
 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 Engine CLI client contacted the Docker Engine daemon.
  2. The Docker Engine daemon pulled the "hello-world" image from the Docker Hub.
     (Assuming it was not already locally available.)
  3. The Docker Engine daemon created a new container from that image which runs the
     executable that produces the output you are currently reading.
  4. The Docker Engine daemon streamed that output to the Docker Engine CLI client, which sent it
     to your terminal.

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

 For more examples and ideas, visit:
  https://docs.docker.com/userguide/

MacOS Docker 安装

使用 Homebrew 安装


macOS 我们可以使用 Homebrew 来安装 Docker。

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

$ brew install --cask --appdir=/Applications docker

==> Creating Caskroom at /usr/local/Caskroom
==> We'll set permissions properly so we won't need sudo in the future
Password: # 输入 macOS 密码
==> Satisfying dependencies
==> Downloading https://download.docker.com/mac/stable/21090/Docker.dmg
######################################################################## 100.0%
==> Verifying checksum for Cask docker
==> Installing Cask docker
==> Moving App 'Docker.app' to '/Applications/Docker.app'.
🍺 docker was successfully installed!

 

在载入 Docker app 后,点击 Next,可能会询问你的 macOS 登陆密码,你输入即可。之后会弹出一个 Docker 运行的提示窗口,状态栏上也有有个小鲸鱼的图标image-1658584528449.png


手动下载安装


如果需要手动下载,请点击以下链接下载 Install Docker Desktop on Mac 。

image-1658584300142.png

如同 macOS 其它软件一样,安装也非常简单,双击下载的 .dmg 文件,然后将鲸鱼图标拖拽到 Application 文件夹即可。

image-1658584329805.png

从应用中找到 Docker 图标并点击运行。可能会询问 macOS 的登陆密码,输入即可。

image-1658584339832.png


点击顶部状态栏中的鲸鱼图标会弹出操作菜单。

image-1658584348873.png

image-1658584360135.png

第一次点击图标,可能会看到这个安装成功的界面,点击 "Got it!" 可以关闭这个窗口。

image-1658584427016.png

启动终端后,通过命令可以检查安装后的 Docker 版本。

docker --version
Docker version 17.09.1-ce, build 19e2cf6

镜像加速


鉴于国内网络问题,后续拉取 Docker 镜像十分缓慢,我们可以需要配置加速器来解决,我使用的是网易的镜像地址:http://hub-mirror.c.163.com。

在任务栏点击 Docker for mac 应用图标 -> Perferences... -> Daemon -> Registry mirrors。在列表中填写加速器地址即可。修改完成之后,点击 Apply & Restart 按钮,Docker 就会重启并应用配置的镜像地址了。

image-1658584405078.png

之后我们可以通过 docker info 来查看是否配置成功。

$ docker info
...
Registry Mirrors:
 http://hub-mirror.c.163.com
Live Restore Enabled: false

Docker 命令

docker compose

命令 描述
docker compose build 构建或重建服务
docker compose convert 将撰写文件转换为平台的规范格式
docker compose cp 在服务容器和本地文件系统之间复制文件/文件夹
docker compose create 为服务创建容器。
docker compose down 停止和移除容器、网络
docker compose events 从容器接收实时事件。
docker compose exec 在正在运行的容器中执行命令。
docker compose images 列出创建的容器使用的图像
docker compose kill 强制停止服务容器。
docker compose logs 查看容器的输出
docker compose ls 列出正在运行的撰写项目
docker compose pause 暂停服务
docker compose port 打印端口绑定的公共端口。
docker compose ps 列出容器
docker compose pull 拉取服务镜像
docker compose push 推送服务镜像
docker compose restart 重启容器
docker compose rm 移除停止的服务容器
docker compose run 在服务上运行一次性命令。
docker compose start 启动服务
docker compose stop 停止服务
docker compose top 显示正在运行的进程
docker compose unpause 取消暂停服务
docker compose up 创建和启动容器
docker compose version 显示 Docker Compose 版本信息

【Docker 模块】使用手册

Docker

       Docker 是一个用于开发、发布和运行应用程序的开放平台。Docker 使您能够将应用程序与基础架构分离,以便您可以快速交付软件。使用 Docker,您可以像管理应用程序一样管理基础设施。通过利用 Docker 快速交付、测试和部署代码的方法,您可以显着减少编写代码和在生产环境中运行之间的延迟。

Dockerfile
       Docker 可以通过读取 Dockerfile 中的指令自动构建镜像,Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。

Docker Compose
       Docker Compose 是一种用于帮助定义和共享多容器应用程序的工具。使用 Compose,我们可以创建一个 YAML 文件来定义服务,并且使用一个命令或操作,可以启动所有内容或将其全部关闭。

安装:
测试版本的面板:在左侧菜单 "Docker" 界面安装
正式版本的面板:需要先在"面板设置"中的 面板菜单栏隐藏 将 "Docker" 打开,按F5刷新界面,在左侧菜单 "Docker" 界面安装
安装后界面如下:点击图片可看大图


产品功能列表与详解:
      一、镜像
          Docker 镜像是容器的基础。镜像没有状态,它永远不会改变。
      二、容器
          容器是Docker 镜像的运行实例。
      三、Compose
          Compose是一个使用 Docker 定义和运行复杂应用程序的工具。
      四、Compose模板
          Compose模板 定义构成Compose 项目的yaml文件。
      五、网络
          容器网络是由 Docker 为容器创造的虚拟环境的一部分,能让容器从宿主机的网络环境中独立出来。
      六、存储卷
          存储卷是一个或多个容器中的一个特别指定的目录,存储卷旨在数据持久化,独立于容器的生命周期。因此删除容器时,Docker 永远不会自动删除卷。
      七、仓库
          仓库是用来存放Docker镜像。
      八、设置
          Docker 服务的状态。

一、镜像:
镜像界面预览:点击图片可看大图



二、容器:
容器界面预览:点击图片可看大图



三、Compose:
Compose界面预览:点击图片可看大图



四、Compose模板:
Compose模板界面预览:点击图片可看大图



五、网络
网络界面预览:点击图片可看大图



六、存储卷
存储卷界面预览:点击图片可看大图



七、仓库
仓库界面预览:点击图片可看大图



八、设置
设置界面预览:点击图片可看大图



【Docker 模块】使用手册---2022/7/5 第一版
本使用手册编写时使用的环境:
操作系统:CentOS7.9.2009 x86_64,内核3.10.0
面板版本:7.9.2(当前最新正式版)
面板Python环境:3.7.9

【Docker 模块】使用Dockerfile构建自己的tomcat镜像

使用Dockerfile构建自己的tomcat镜像

cat > dockerfile << EOF
FROM centos
## FROM 从 centos镜像,开始构建新的镜像

ADD apache-tomcat-9.0.62.tar.gz /usr/local
## ADD 添加文件并且自动解压到 /usr/local/apache-tomcat-9.0.62

COPY apptest /usr/local/apache-tomcat-9.0.62/webapps/apptest
## COPY 复制 apptest 下的所有文件到容器,容器目录不存在时会自动建立 apptest 目录

COPY jdk-8u121-linux-x64.rpm /tmp/
## COPY 复制 jdk-8u121-linux-x64.rpm 文件到 /tmp/

ENV MYPATH=/usr/local/apache-tomcat-9.0.62
## ENV 设置容器环境变量

WORKDIR \$MYPATH
## WORKDIR 设置工作目录,也就是进入容器的默认目录

EXPOSE 8080 8009
## EXPOSE 容器的暴露端口

RUN rpm -ivh /tmp/jdk-8u121-linux-x64.rpm && rm -f /tmp/jdk-8u121-linux-x64.rpm
## RUN 指令安装 jdk,安装完成后删除文件

CMD ["/usr/local/apache-tomcat-9.0.62/bin/catalina.sh", "run"]
## CMD 指定要在容器中运行的命令,启动tomcat。

EOF

更多 dockerfile 指令使用方法,请查看Docker官方文档