4、Docker-Compose 构建grafana
    https://kalasearch.cn/blog/grafana-with-prometheus-tutorial/

    首先了解docker-compose
    安装docker-compose 3以上版本,windows上的docker会自带,因此无需安装
    https://www.runoob.com/docker/docker-compose.html
    https://github.com/docker/compose/releases
    检查版本:docker-compose -v

    创建docker-compose.yml并编写。参考
    https://docs.microsoft.com/zh-cn/visualstudio/docker/tutorials/use-docker-compose

    3、搭建网站:利用wordpress、mysql容器

    环境:腾讯云服务器82.156.246.115,操作系统为CentOS,docker 20.10

    docker run -d —privileged=true —name myMysql -v /data/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -p 33306:3306 mysql:5.6

    docker run -d —name mwp -e WORDPRESS_DB_HOST=mysql
    -e WORDPRESS_DB_PASSWORD=123456 -p 1080:80 —link myMysql:mysql wordpress

    参考:
    https://www.jianshu.com/p/2faca4e1f6fb
    手把手教你腾讯云服务器如何搭建个人网站(宝塔面板+linux图文教程)
    - 许你一生繁华的文章 - 知乎https://zhuanlan.zhihu.com/p/141284661

    其他:

    2048游戏
    镜像 docker pull alexwhen/docker-2048
    docker run -d -p 80:80 alexwhen/docker-2048

    nginx
    docker run —name nginx-test -p 8080:80 -d nginx

    2、制作一个MYSQL镜像,其中包含初始化表

    启动原始容器:docker run-itd—name mysql-test-p3306:3306-e MYSQL_ROOT_PASSWORD=123456mysql
    进入容器内部:docker exec -it 容器ID /bin/bash
    将.sql文件复制到MySQL容器内的/docker-entrypoint-initdb.d/中:docker cp .sql 容器ID:/docker-entrypoint-initdb.d
    保存新镜像docker commit [-m] [-a] ID 目标镜像名
    push到制品库(详见上文)
    https://blog.csdn.net/Wonderful_sky/article/details/94312357(参考:MYSQL)
    https://www.jb51.net/article/115422.htm
    https://blog.csdn.net/kron_no/article/details/107936813(参考:新镜像保存)
    image.png

    疑问:docker desktop中,mysql容器如何挂卷,主要是宿主机目录如何写?

    1、Docker安装

    Linux
    在线安装:
    离线安装:D:\A-File\4平台研发\容器云\文件\Docker相关\docker安装-linux\docker-19.03.1

    DockerDesktop

    详见《docker安装使用教程windows版.doc》

    windows版本安装:https://www.runoob.com/docker/windows-docker-install.html

    阿里云加速 https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
    我的阿里云加速链接https://tcy950ho.mirror.aliyuncs.com

    docker问答
    https://docs.docker.com/engine/faq/
    https://docs.docker.com/registry/insecure/
    https://www.infoq.cn/article/wbcoOqPAwr9Ij6fL5sDd

    Win 10专业版安装docker desktop
    https://docs.docker.com/docker-for-windows/install/

    image.png
    疑问:Containers Windows features 包含什么?
    https://stackoverflow.com/questions/54081033/what-is-included-in-the-windows-10-container-feature-and-why-do-i-need-docker-f

    Win 10家庭版安装docker desktop
    https://docs.docker.com/docker-for-windows/install-windows-home/

    WSL:https://docs.microsoft.com/en-us/windows/wsl/install-win10
    更新包https://docs.microsoft.com/zh-cn/windows/wsl/install-win10#step-4—-download-the-linux-kernel-update-package
    image.png

    官方文档中的WSL 2 feature 应该包括控制面板中的:WSL、虚拟机平台

    参考:

    WSL 2是否需要Hyper-Vhttps://github.com/MicrosoftDocs/WSL/issues/445
    查看Docker日志:C:\ProgramData\DockerDesktop下的service.txt

    迁移镜像
    https://dev.to/kimcuonthenet/move-docker-desktop-data-distro-out-of-system-drive-4cg2

    小结:
    WIn 10专业版可以直接用Hyper-V,开启Docker Desktop,(应该也可选择用WSL 2)
    Win 10家庭版现在可以直接用WSL 2开启Docker Desktop,
    而不用通过脚本来安装Hyper-V,并在注册表中伪装成专业版

    测试:

    1.自己的家庭版上:卸载docker,关闭hyper-v,只使用官网WSL 2的方法,成功。

    2.专业版上:先关闭hyper-v,只使用WSL,不卸载docker的情况下docker报错required Hyper-V.

    3.卸载docker,仍然只使用WSL,并重装,安装时 默认勾选“安装Hyper-V feature”,安装后提示重启系统。
    重启后hyper-v被打开,docker正常运行,显示使用的是hyper-v,设置中WSL 2无法勾选,
    显示信息为 require win 18 build 18362.1040+,但测试用系统版本为1909,内部号为18363.535。
    (专业版上,同时开启WSL与hyper-v,会使用hyper-v,或者是我在WSL上操作有误?)

    4.在上面操作的基础上,关闭WSL和“虚拟机平台”,只保留hyper-v,重启,docker正常。

    5.先卸载docker,关闭Hyper-V,只使用WSL和“虚拟机平台”(与上面2类似)
    重启系统,安装docker,不勾选“安装Hyper-V feature”,结果:报错required Hyper-V.
    打开hyper-v后,重启,docker可正常启动

    疑问:官方文档https://docs.docker.com/docker-for-windows/troubleshoot/
    表明,家庭版和专业版都 需要开启Hypervisor。Hypervisor是指什么???

    https://github.com/docker/for-win/issues/6689
    Enable Hypervisor with following command - bcdedit /set hypervisorlaunchtype auto.
    image.png

    image.png

    基于WSL2 的 Docker Desktop 启动时 Failed to set version to docker-desktop exit code -1的解决方法
    netsh winsock reset
    长期解决方案:https://zhuanlan.zhihu.com/p/151392411

    docker desktop在云桌面上在无法运行问题排查过程记录

    1.问题:云桌面的win 10上,安装docker后,运行时报错。

    2.表现:“开启或关闭Windows服务”中,Hyper-V没有完全打开,
    并提示“处理器没有所需的虚拟化”

    3.猜想:怀疑是因为云桌面没有权限开启硬件虚拟化,而docker官方要求开启硬件虚拟化。

    4.验证:
    1).西安的Win 10(非虚拟机上)可以正常安装和运行;
    2).西安的Win 10虚拟机上,按照同样的步骤安装,无法运行,报同样的错误;
    3).在底层开启硬件虚拟化后,安装运行,成功

    5.结论:虚拟机上没有开启硬件虚拟化(云桌面没有权限)

    6.解决方案:联系系统组,在底层开启硬件虚拟化,然后重新尝试。
    image.png
    https://github.com/docker/for-win/issues/8204

    参考:
    https://docs.docker.com/docker-for-windows/install/

    https://docs.docker.com/docker-for-windows/troubleshoot/#running-docker-desktop-for-windows-in-nested-virtualization-scenarios
    image.png
    image.png

    win7 安装docker
    https://www.jianshu.com/p/48e546fd3c8f
    https://blog.csdn.net/vitaair/article/details/80894890?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.control
    问题
    https://www.jianshu.com/p/e05a20dc85b4