Docker Desktop 使用笔记
一、Docker Desktop是什么?
Docker Desktop是适用于Windows的Docker桌面,是Docker设计用于在Windows 10上运行。它是一个本地 Windows 应用程序,为构建、交付和运行dockerized应用程序提供易于使用的开发环境。Docker Desktop for Windows 使用 Windows 原生 Hyper-V 虚拟化和网络,是在 Windows 上开发 Docker 应用程序的最快、最可靠的方式。Windows 版 Docker 桌面支持运行 Linux 和 Windows Docker 容器。
tips:docker真的很香,部署环境省不少事。
二、启用Hyper-V以创建虚拟机:
注意:可以通过多种方式启用 Hyper-V,包括使用 Windows 10 控制面板、PowerShell(Hyper-V 作为可选功能内置于 Windows -- 无需下载 Hyper-V)。
1、使用 PowerShell 启用 Hyper-V
以管理员身份打开 PowerShell 控制台,运行以下命令:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
2、通过控制面板“设置”启用 Hyper-V 角色
- 右键单击 Windows 按钮并选择“应用和功能”。
- 选择相关设置下右侧的“程序和功能”。
- 选择“打开或关闭 Windows 功能”。
- 选择“Hyper-V”,然后单击“确定”。
选择Hyper-V、linux子系统、容器
注意:安装完成后,系统会提示你重新启动计算机。
三、WSL安装
1、升级WSL到WSL2
首先需要确保已经安装了WSL,才能从WSL升级到WSL2。
管理员打开cmd输入
先启用“适用于 Linux 的 Windows 子系统”可选功能,然后才能在 Windows 上安装 Linux 分发版。
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
第一步:打开系统虚拟机平台
系统更新并重启后,我们就可以开始 wsl 的升级了
首先,需要打开“系统虚拟机平台”功能,在“控制面板\所有控制面板项\程序和功能”中选择“启用或者关闭Windows功能”,勾选对应选项即可。
也可以通过在管理员权限下的 cmd 或 PowerShell 中执行:
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform
配置完成等待系统自动重启即可。
2、将wsl2设置为默认
安装新的 Linux 分发版时,请在 Powershell 中运行以下命令,以将 WSL 2 设置为默认版本:
wsl --set-default-version 2
四、Dokcer Desktop安装:
下载
官方下载地址:Docker Desktop Installer.exe 下载地址
国内镜像:Windows安装包下载地址
Windows 的 Docker 桌面说明:Install Docker Desktop on Windows | Docker Docs
安装:
双击下载成功的Docker Desktop Installer.exe应用。
等待安装完毕即可。
验证安装是否成功
在PowerShell查看Docker版本:输入dcoker version,控制台输出Client和Server就是代表安装成功了。
验证是否可以正常使用:
打开命令行窗口运行以下命令:
docker run hello-world
看到输出Hello from docker则表示安装成功,且能正常工作。
五、常用命令
1. docker 进程
docker 进程启动、停止、重启,常见的三种 case
# 启动docker
service docker start
# 关机docker
service docker stop
# 重启docker
service docker restart
2. 镜像操作
镜像作为容器执行的前提条件,一般需要掌握的几个命令无非是搜索,下载,删除,创建
# 镜像列表
docker images
# 检索镜像, 从镜像仓库中检索
docker search xxx
# 下载镜像
docker pull xxx
# 删除镜像
docker rmi xxx
关于创建镜像,有必要稍微详细一点点
# 通过容器创建镜像
docker commit -m="首次提交" -a="一灰灰Blog" dd85eb055fe8 yh/centos:v0.1
# 镜像历史查询
docker history yh/centos
上面的几个参数进行说明
-m和 git 的提交一样,后面更上描述信息-a版权声明,这个东西是我创建的,有啥问题,找我dd85eb055fe8容器 idyhh/quick-os:0.1创建的镜像名
3. 容器操作
接下来就是正菜了,容器的各种操作,启动,关闭,重启,日志查询以及各种进入容器内部搞事情
a. run
万事开头第一步,加载镜像,创建容器
docker run 镜像名:版本
run 后面可以跟很多的参数,比如容器暴露端口指定,存储映射,权限等等,由于参数过多,下面只给出几个不同的例子,来具体的演示参数可以怎么加
case1: 创建并后台执行
docker run -i -t -d centos:latest
- 其中关键参数为
-d,指定容器运行与前台或者后台,不加上时前台 -i: 打开 STDIN,用于控制台交互-t: 支持终端登录
case2: 运行一个带命令在后台不断执行的容器
docker run -d centos:latest ping www.baidu.com
case3: 运行一个在后台不断执行的容器,同时带有命令,程序被终止后还能重启继续跑
docker run -d --restart=always centos:latest ping www.baidu.com
case4: 指定容器名
docker run -d --name=yhh_centos centos:latest
case5: 暴露容器端口 80,并与宿主机端口 8080 绑定,注意:容器内网ip为172.17.0.2
docker run -d --name=yhh_centos -p 8080:80 centos:latest
case6: 指定容器与宿主机目录(/home/yihui/html/www)共享
docker run -d --name=yhh_centos -v /home/yihui/html/www:/var/www centos:latest
-e:指定环境变量
-e XXXENV=xxxx
b. 基操
容器创建完毕之后,就是一些基本操作了,启动、停止、重启、删除
# 查看容器列表, 列出所有的容器
docker ps -a
# 启动容器,start后面可以跟上容器名,或者容器id
docker start xxx # (这里的xxx可以是容器名:yhh_centos 也可以是容器id:f57398ab22c5)
# 关闭容器
docker stop xxx
# 重启
docker restart xxx
# 删除
docker rm xxx
在查看容器列表时,如果某个容器的启动参数特别长,直接使用docker ps -a会发现看不到完整的启动命令,这个时候可以带上参数--no-trunc来显示完整命令
docker ps -a --no-trunc
c. 进阶
接下来进入一些容器的高级操作技巧(实际上也并没有特别酷炫)
为了演示一些进阶的内容,这里创建一个容器作为测试
docker run -it -d --name=yhhos centos
容器日志查询
日志,定位问题的神器
# 查询xxx容器的日志
docker logs yhhos
基本上不太会直接使用上面的命令,因为上面把所有的日志都打印出来了,可以直接晃瞎我们的钛合金 x 眼
一般日志可以加两个参数 -f, -t
docker logs -f -t --since="2019-05-11" --tail=10 yhhos
--since: 此参数指定了输出日志开始日期,即只输出指定日期之后的日志。-f: 查看实时日志-t: 查看日志产生的日期--tail=10: 查看最后的 10 条日志。
文件拷贝
将容器的某个文件捞出来;或者强塞,一个 cp 即可
# 将当前目录的test.md文件拷贝到容器的 /tmp 目录下
docker cp test.md yhhos:/tmp
# 将容器的/tmp/test.md目录拷贝到当前目录下
docker cp yhhos:/tmp/test.md ./out.md
进入容器
进入容器内部,然后就可以为所欲为了...
docker exec -it yhhos /bin/bash
获取容器所有信息
docker inspect yhhos
Docker Desktop 使用笔记的更多相关文章
- 温故知新Docker概念及Docker Desktop For Windows v3.1.0安装
Docker 简介 什么是Docker? Docker是一个开放源代码软件项目,项目主要代码在2013年开源于GitHub.它是云服务技术上的一次创新,让应用程序布署在软件容器下的工作可以自动化进行, ...
- Docker小白使用笔记
本文来自网易云社区. 本人DBA一枚,但因为工作的关系,接手的机器越来越多,要部署的东西也从MySQL扩展到其他千奇百怪的各种应用服务,因此需要使用自动化部署的场景也越来越多.早就听运维部的其他大大们 ...
- Mac OS用docker Desktop安装单节点kubernetes
方案: 安装方式:阿里云minikube,k8s官方minikube,kubeadm, docker Desktop中自带第k8s 安装环境:在linux虚拟机中安装k8s,在macos中安装k8s, ...
- Homebrew 安装 Docker Desktop for Mac
无意中发现Homebrew现在已经支持Docker Desktop for Mac了,因此特意把原来通过 https://docs.docker.com/docker-for-mac/install/ ...
- macOS 安装 Docker Desktop CE(转)
现在基本上都使用docker进行部署项目,所以还是有必要学习下,关于docker的简介这里就不在描述,本文转载自https://yeasy.gitbooks.io/docker_practice/co ...
- Docker Desktop for Windows 安装步骤
Docker Desktop for Windows 安装要求 Docker Desktop for Windows需要运行Microsoft Hyper-V.如果需要,Docker Desktop ...
- (二) Windows 进行 Docker CE 安装(Docker Desktop)
参考并感谢 官方文档: https://docs.docker.com/docker-for-windows/install/ 下载地址 https://download.docker.com/win ...
- Docker Desktop: Error response from daemon: driver failed programming external connectivity on endpoint xxx 问题
右击任务栏 Docker 图标 `Restart` 或 `Quit Docker Deskto` 后之前正常的 zookeeper 容器不会自动启动 通过命令 docker start zk1 启动报 ...
- Docker zookeeper 集群 for Docker desktop (win)
docker desktop win10 环境下的 zookeeper 容器创建并运及可能出现的问题: https://github.com/poazy/boazy-learn/blob/master ...
- Docker Desktop for Windows Experience
Docker Desktop for Windows Experience: https://github.com/poazy/boazy-learn/blob/master/doc/Docker%2 ...
随机推荐
- 为什么我越来越喜欢用DDD — DDD架构篇(1)
Hello DDD DDD 是一种软件设计方法,DDD 是指导我们做软件工程设计的一种手段.它提供了用切割工程模型的各类技巧,如:领域.界限上下文.实体.值对象.聚合.工厂.仓储等.通过 DDD 的指 ...
- Next.js 实战开发入门 1 开发环境部署 - 曲速引擎 Warp Drive
开发目标 我们将构建一个简化版本的财务仪表板,其内容包括:公共主页.登录页面.受身份验证保护的仪表板页面.用户可以添加.编辑和删除发票 开发环境配置 开发客户端 Windows 10 (不限系统,兼容 ...
- Spark原理及关键技术点
Spark Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎.Spark是UC Berkeley AMP lab (加州大学伯克利分校的AMP实验室)所开源的类Hadoop M ...
- C#中的Math.Round
开发者为了实现小数点后 2 位的四舍五入,编写了如下代码, var num = Math.Round(12.125, 2); 代码非常的简单,开发者实际得到的结果是12.12, 这与其所预期的四舍五入 ...
- Apache Shiro 550反序列化漏洞复现
目录 漏洞原理 复现 漏洞探测 方式一 ysoserial反弹shell 方式二 ShiroAttack2一键利用 修复措施 Apache Shiro 是一个用于身份验证.授权.加密和会话管理的Jav ...
- 通向架构师的道路(第五天)之tomcat集群-群猫乱舞
一.为何要集群 单台App Server再强劲,也有其瓶劲,先来看一下下面这个真实的场景. 当时这个工程是这样的,tomcat这一段被称为web zone,里面用spring+ws,还装了一个jbos ...
- 利用 Java 实现组合式解析器
Ward Cunningham 曾经说过,干净的代码清晰地表达了代码编写者所想要表达的东西,而优美的代码则更进一步,优美的代码看起来就像是专门为了要解决的问题而存在的.在本文中,我们将展示一个组合式解 ...
- Windows下的终端工具-Terminal
文档:https://docs.microsoft.com/zh-cn/windows/terminal/ Windows 终端是一个面向命令行工具和 shell(如命令提示符.PowerShell ...
- 新型大语言模型的预训练与后训练范式,阿里Qwen
前言:大型语言模型(LLMs)的发展历程可以说是非常长,从早期的GPT模型一路走到了今天这些复杂的.公开权重的大型语言模型.最初,LLM的训练过程只关注预训练,但后来逐步扩展到了包括预训练和后训练在内 ...
- Vue.js 组件注册
1.前言 本节讲述组件和2.x版本和3.x版本的注册方式 2.全局注册 2.x版本直接调用Vue.component()方法进行全局注册,所有Vue实例都能使用,包括其组件 //组件代码省略 var ...