2024写给纯小白的超简单docker入门教程

学习docker的必要性

使用docker可以克服诸如 "我的代码放到你的电脑上怎么跑不了了? " 此类问题

后端系统会部署很多服务,比如 mysql、redis 等中间件服务,而部署这些服务需要安装一系列依赖 ,甚至做一些环境变量的设置等等操作。

如果你要部署到多台服务器,同样的操作要重复多次,这是很繁琐且低效率的,而学习docker正是为了解决此类问题

准备阶段

首先需要下载 docker ,下载地址

如果是苹果电脑,需要区分芯片类型来下载,本文章默认为 Windows

下载后,我们试试命令行看是否安装成功

bash 复制代码
docker -h

弹了一堆,这就代表docker安装成功了

基础知识

现在我们打开 docker,严格来说应该叫 docker desktop ,其实是一个东西,不必纠结

打开界面后看到的内容如上,我对一些地方做了标注,这些内容很重要,下面让我来解释一下:

  • 容器:它的作用是将镜像运行起来,因此我们称之为运行的实例化镜像。一个容器只能运行一个镜像,我们可以将它看做是一个沙箱。
  • 镜像:镜像(images)是用于创建容器的模板。它包含了运行特定程序所需要的文件系统、依赖、配置等,我们可以将它看做是一个静态文件。
  • 数据卷:它允许将容器内的特定路径与主机(宿主机)上的目录或文件进行关联,从而实现数据在容器和主机之间的共享和持久化存储。

运行镜像

我们先从网络上pull一个镜像(需要科学上网,否则搜不到)

现在我们pull了一个nginx镜像,在本地Images中可以看见了,我们点击下图中的图标,把镜像运行起来

要填一些参数,按照我下面这样填就好了。我来解释一下各个参数的含义:

  • nginx-test: 容器名
  • 80: 我们现在要跑的nginx服务是在80端口,因此我们需要将主机(宿主机)的某个端口映射到容器的80端口才可以访问
  • /tmp/aaa: 该容器用于保存数据的文件夹。由于每次运行镜像,容器都是相同的,也就是说我们在容器内保存数据是没有用的 。因此我们会利用到上面数据卷的知识,请往上回顾
  • /usr/share/nginx/html: 上面/tmp/aaa关联到容器内的目录。也就是说,我们在本电脑中的/tmp/aaa文件夹创建的任何东西,都将在容器内的/usr/share/nginx/html中同步看到。

有一个地方要变化,就是/tmp/aaa:

  1. 我们在桌面新建一个空的文件夹,名字叫data
  2. 点击/tmp/aaa右侧的三个小圆图标,选择桌面上的data文件夹

点击Run后,我们就将镜像运行起来了。

接下来我们在桌面的data文件夹中新建一个index.html,写入hello docker!,访问http://localhost 就可以看到效果啦

结语

在这篇文章中,通过运行一个nginx镜像,从0到1完成入门的 运行镜像、挂载数据卷 两个操作,同时也介绍了docker的基础概念和知识

本人也是近期学习docker,这篇文章既是教程分享,也是学习记录

如果有描述不当的地方,欢迎在评论区指正

一些参考链接

写给前端的docker实战教程

神光的docker教程

相关推荐
Java开发追求者8 小时前
windows快速安装docker
windows·docker·安装·1024程序员节
骑着蜗牛撵大象32710 小时前
飞牛fnOS部署Damselfly:Compose编排、照片目录与7100固定访问
java·docker·rpc·dubbo·fnos·照片管理·damselfly
一掬净土11 小时前
kubelet 报错如下:docker does not support reopening container log files
docker·云原生·kubelet·logfiles
TTATTC13 小时前
为什么 Python 做 Agent 总在并发中崩溃?拆解 Blockcell 在 Rust 下的 Host-Cell 隔离与自愈状态机
docker·开源
骑着蜗牛撵大象32715 小时前
N1 小盒子撑起 AI 接口中转层:New-API 接管本地 Ollama,用 Token 分发模型能力
docker·llama·1024程序员节·api网关·飞牛nas·new-api
艸肅15 小时前
Docker 国内镜像源配置
linux·ubuntu·docker·1024程序员节
java_logo15 小时前
Docker 部署 Bililive-go:轻松搭建多平台直播录制
docker·1024程序员节·直播录制·轩辕镜像·bililive-go·chigusa/bililive-go
A-刘晨阳16 小时前
【云原生】nerdctl 部署及使用指南
运维·docker·kubernetes·云计算·1024程序员节·nerdctl
bigbig_ben21 小时前
yearning安装docker
运维·docker·容器
吴声子夜歌1 天前
Docker入门与实战——热门镜像介绍
运维·docker·容器