文章目录
Mac 从 0 到 1 保姆级配置教程目录,点击即可跳转对应文章:
【🚀🚀🚀 教程开源地址】:https://github.com/tonngw/macman
【Mac 从 0 到 1 保姆级配置教程 00】 - 教程说明
【Mac 从 0 到 1 保姆级配置教程 01】 - 安装无敌的 brew
【Mac 从 0 到 1 保姆级配置教程 02】 - 你真的会装软件吗?内含常用软件安装教程
【Mac 从 0 到 1 保姆级配置教程 03】 - 安装配置美化 iterm2 一气呵成,Mac 下经久不衰的终端
【Mac 从 0 到 1 保姆级配置教程 04】 - 手把手教你安装配置 zsh 和 oh my zsh,一看就会!
【Mac 从 0 到 1 保姆级配置教程 05】 - 全网最详细 20+ 张图逐帧安装 powerlevel10k zsh 主题(上)
【Mac 从 0 到 1 保姆级配置教程 05】 - 全网最详细 20+ 张图逐帧安装 powerlevel10k zsh 主题(下)
【Mac 从 0 到 1 保姆级配置教程 06】 - iterm2 常用快捷键和 zsh 别名配置
【Mac 从 0 到 1 保姆级配置教程 07】 - 配置 Git、GitHub、SSH 免密提交以及 Git 常用基础命令
【Mac 从 0 到 1 保姆级配置教程 08】 - 快速配置 Neovim、LazyVim 以及常用开发环境,如果之前有人这么写就好了
【Mac 从 0 到 1 保姆级配置教程 09】 - 快速配置终端复用工具 tmux 和 oh-my-tmux
【Mac 从 0 到 1 保姆级配置教程 10】 - sdkman 几分钟搞定 Java 开发环境,一定不要错过啊!
【Mac 从 0 到 1 保姆级配置教程 11】 - Mac 基础配置 Finder、触控板、常用快捷键等
【Mac 从 0 到 1 保姆级配置教程 12】- 安装配置万能的编辑器 VSCode 以及常用插件
【Mac 从 0 到 1 保姆级配置教程 13】- 详细介绍一款 Mac 下无敌好用的宝藏软件 RayCast
【Mac 从 0 到 1 保姆级配置教程 14】- 那些 Mac 非常常用的高效率工具,肯定有你不知道的
【Mac 从 0 到 1 保姆级配置教程 15】- Python 环境一键安装与配置,就是这么的丝滑
持续更新中…
前言
1. Docker 是什么?
Docker 是一个开源的容器化平台,它允许开发者将应用程序及其依赖打包到一个可移植的容器 (container) 中。这些容器可以在任何支持 Docker 的环境中运行,确保应用程序在不同环境中的一致性。
2. 为什么要使用 Docker?
回想一下我们学习编程的时候最折磨的就是环境问题,比如安装依赖、配置环境变量、兼容性等等。Docker 就是为了解决这个问题而生的,有了 Docker 之后我们就可以直接使用别人在 Dcoker Hub 仓库打包好的镜像 (image) 运行在我们的容器 (container) 中,大大地减轻了很多的人力和时间成本。
注:Dcoker Hub 仓库是 Docker 官方维护的镜像仓库,里面有很多开源软件的镜像,包括 MySQL、Redis、MongoDB、Nginx 等等。
安装 Docker
通常我们安装提供 Docker 管理工具的软件包会帮我们把 Docker 环境安装好,常用的工具有 Docker Desktop、OrbStack。
1. 安装 Docker Desktop
在官网找到对应 Mac 版本的安装包下载安装即可:https://www.docker.com/products/docker-desktop
2. 安装 OrbStack
通过 brew 安装 OrbStack 也很简单,只需要在终端输入以下命令即可:
brew install --cask orbstack
或者在官网下载安装包进行安装:https://www.orbital.io/download,我们发现 OrbStack 只有 Mac 版本,它是 Mac 下特有的一款软件。
3. Docker Desktop VS OrbStack
- Docker Desktop 是官方产品,功能完整,社区强大,但是内存磁盘资源占用大,启动慢。
- OrbStack 是第三方产品,基础功能完善,界面简洁,资源占用小,启动快,面向个人开发者免费。
- 个人使用可以尝试 OrbStack,生产环境推荐 Docker Desktop。
5. 验证安装
docker --version
如果安装成功,会输出 Docker 版本号。
我最近在使用 OrbStack,下面以 OrbStack 为例进行演示。
使用 Docker 运行项目
我们通过官方的一个样例项目来看一下如何在本地把它跑起来,https://github.com/dockersamples/example-voting-app#
1. 克隆项目到本地
git clone git@github.com:dockersamples/example-voting-app.git
2. 进入项目目录
cd example-voting-app
3. 启动容器:
docker-compose up -d
如果拉取镜像出现如下错误提示,大概率是网络原因
需要配置一下 Docker 镜像源,比如 OrbStack 在设置中进行配置,添加如下镜像源后点击 Apply
,重启 OrbStack,重启才能生效:
以下镜像均已生效
{
"registry-mirrors": [
"https://registry.docker-cn.com",
"https://docker.mirrors.ustc.edu.cn",
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com",
"https://ccr.ccs.tencentyun.com"
]
}
找到一个有效的镜像源,且用且珍惜吧…
{
"registry-mirrors" : [
"https://docker.xuanyuan.me"
]
}
重新执行命令,拉取的内容较多,需要耐心等待一会,执行成功后,我们可以看到如下输出:
如果这里提示端口 8081
被占用,查看一下占用端口的进程
lsof -i tcp:8081
我的是被 OrbStack 占用了,没法杀掉进程,所以需要修改 docker-compose.yml
文件中的端口映射,比如把 8081
改成 8082
。
如果你的进程可以杀掉,直接 kill -9 进程号
即可。
注:这个过程还是需要我们能够定位问题解决问题,比如网络问题、端口占用等等。这个例子也是我们现实场景中的一个真实显照。
查看运行效果
1. OrbStack 中查看运行中的容器
这是样例工程的项目架构
包括 Postgres 数据库、Redis 缓存、NodeJS 后端服务、Python 前端服务、Worker 任务。
2. 访问页面
- 投票页面,访问 http://localhost:8080,可以选择选项进行投票,每个客户端只能投票一次。
- 统计页面,访问 http://localhost:8082,查看投票结果。
Docker 常用命令
以下是之前学习的部分笔记整理,如果是初学者建议根据文章最后提供的资源进行系统性学习。
1. 镜像操作
docker 仓库中的每个镜像都是由 name:tag
- 应用名称:版本号
构成的。
可以在 Docker 中央仓库中查找想要的镜像 https://hub.docker.com/
docker pull ubuntu:20.04
:拉取一个镜像docker iamges
:查看本地所有的镜像docker rmi ubuntu:20.04
:删除指定镜像,rmi - remvoe imagedocker save -o ubuntu_20_04.tar ubuntu:20.4
:将镜像ubuntu:20.4
导出到本地文件ubuntu_20_04.tar
。
默认导出后其他用户是没有可读权限的,需要给它加一个可读权限chmod +r ubuntu_20_04.tar
docker load -i ubuntu_20_04.tar
:将镜像ubuntu:20.04
从本地文件ubuntu_20_04.tar
中加载出来。
docker save
和docker load
配合可以实现 docker 镜像在不同服务器之间的迁移。
2. 容器操作
根据一个镜像可以创建多个容器。
说明:
[container]
表示可选,可以不写CONTAINER
:可以是容器 name 或者是容器 id
命令:
docker [container] create -it ubuntu:20.04
:利用镜像ubuntu:20.04
创建一个容器docker ps -a
:查看本地所有的容器docker ps
:只显示正在运行的容器
docker [container] start CONTAINER
:启动容器docker [container] stop CONTAINER
:停止容器docker [container] restart CONTAINER
:重启容器docker [container] run -itd ubuntu:20.04
:创建并启动一个容器docker [container] run -it ubuntu:20.04
创建并直接进入容器,少了参数d
docker [container] attach CONTAINER
:进入容器- 退出后不关闭容器(挂起容器):
Ctrl + p
+Ctrl + q
【推荐使用】 - 退出后关闭容器:
Ctrl + d
- 退出后不关闭容器(挂起容器):
docker [container] exec CONTAINER COMMAND
:在容器中执行命令- 可以把 docker 容器看成一个全新的 Linux 服务器。
ls
查看根目录就是 linux 文件目录
- 可以把 docker 容器看成一个全新的 Linux 服务器。
docker [container] rm CONTAINER
:删除容器docker container prune
:删除所有已停止的容器,prune - 删去docker export -o xxx.tar CONTAINER
:将容器CONTAINER
导出到本地文件xxx.tar
中docker import xxx.tar image_name:tag
:将本地文件xxx.tar
导入成镜像,并将镜像重命名为image_name:tag
docker exprot/import
和docker save/load
的区别export/impot
会丢失历史记录和元数据信息,仅保存容器当时的快照状态。save/load
会保存完整记录,体积更大。
docker top CONTAINER
:查看某个容器内的所有进程docker stats
:查看所有容器的统计信息,CPU、内存、存储、网络等信息。- 按
Ctrl + c
结束查看
- 按
docker cp xxx CONTAINER:xxx
或docker cp CONTAINER:xxx xxx
:在本地和容器之间复制文件docker rename CONTAINER1 CONTAINER2
:重命名容器docker update CONTAINER --memory 500M
:修改容器大小限制
最后
如果感觉文章对你有所帮助,请三连支持一下博主哦,感谢大家~
最重要的是给博主留一个大大的关注,你的支持是我更新的最大动力!
这个系列会继续更新下去的!
Docker 学习资源
- 官方文档:https://docs.docker.com/
- 3 小时速通 Docker 教程:https://www.bilibili.com/video/BV1Zn4y1X7AZ
- https://www.ruanyifeng.com/blog/2018/02/docker-tutorial.html
系列教程
【🚀🚀🚀 教程开源地址】:https://github.com/tonngw/macman
【Mac 从 0 到 1 保姆级配置教程 00】 - 教程说明
【Mac 从 0 到 1 保姆级配置教程 01】 - 安装无敌的 brew
【Mac 从 0 到 1 保姆级配置教程 02】 - 你真的会装软件吗?内含常用软件安装教程
【Mac 从 0 到 1 保姆级配置教程 03】 - 安装配置美化 iterm2 一气呵成,Mac 下经久不衰的终端
【Mac 从 0 到 1 保姆级配置教程 04】 - 手把手教你安装配置 zsh 和 oh my zsh,一看就会!
【Mac 从 0 到 1 保姆级配置教程 05】 - 全网最详细 20+ 张图逐帧安装 powerlevel10k zsh 主题(上)
【Mac 从 0 到 1 保姆级配置教程 05】 - 全网最详细 20+ 张图逐帧安装 powerlevel10k zsh 主题(下)
【Mac 从 0 到 1 保姆级配置教程 06】 - iterm2 常用快捷键和 zsh 别名配置
【Mac 从 0 到 1 保姆级配置教程 07】 - 配置 Git、GitHub、SSH 免密提交以及 Git 常用基础命令
【Mac 从 0 到 1 保姆级配置教程 08】 - 快速配置 Neovim、LazyVim 以及常用开发环境,如果之前有人这么写就好了
【Mac 从 0 到 1 保姆级配置教程 09】 - 快速配置终端复用工具 tmux 和 oh-my-tmux
【Mac 从 0 到 1 保姆级配置教程 10】 - sdkman 几分钟搞定 Java 开发环境,一定不要错过啊!
【Mac 从 0 到 1 保姆级配置教程 11】 - Mac 基础配置 Finder、触控板、常用快捷键等
【Mac 从 0 到 1 保姆级配置教程 12】- 安装配置万能的编辑器 VSCode 以及常用插件
【Mac 从 0 到 1 保姆级配置教程 13】- 详细介绍一款 Mac 下无敌好用的宝藏软件 RayCast
【Mac 从 0 到 1 保姆级配置教程 14】- 那些 Mac 非常常用的高效率工具,肯定有你不知道的
【Mac 从 0 到 1 保姆级配置教程 15】- Python 环境一键安装与配置,就是这么的丝滑
持续更新中…