【Docker】Docker 入门全攻略:安装、操作与常用命令指南

目录

[Docker 入门全攻略:安装、操作与常用命令指南](#Docker 入门全攻略:安装、操作与常用命令指南)

一、引言

[二、Docker 下载与安装](#二、Docker 下载与安装)

[2.1 Docker 的系统要求](#2.1 Docker 的系统要求)

[2.2 安装步骤](#2.2 安装步骤)

[①对于 Windows 的安装指南](#①对于 Windows 的安装指南)

[②对于 macOS 的安装指南](#②对于 macOS 的安装指南)

[③对于 Linux 的安装指南](#③对于 Linux 的安装指南)

[三、Docker 的基本概念](#三、Docker 的基本概念)

[3.1 镜像(Image)](#3.1 镜像(Image))

[3.2 容器(Container)](#3.2 容器(Container))

[四、Docker 基本命令操作](#四、Docker 基本命令操作)

[4.1 拉取镜像](#4.1 拉取镜像)

[4.2 列出镜像](#4.2 列出镜像)

[4.3 运行容器](#4.3 运行容器)

[4.4 打包容器](#4.4 打包容器)

[4.5 推送镜像](#4.5 推送镜像)

[4.6 启动和停止容器](#4.6 启动和停止容器)

[4.7 附加命令](#4.7 附加命令)

五、一个简单的实操案例

[5.1、创建 Dockerfile](#5.1、创建 Dockerfile)

5.2、构建镜像

5.3、运行容器

5.4、访问应用

六、总结


作者:watermelo617

涉及领域:Vue、SpingBoot、Docker、LLM、python等


--------------------------温柔地对待温柔的人,包容的三观就是最大的温柔。--------------------------


Docker 入门全攻略:安装、操作与常用命令指南

一、引言

Docker 是一个开源的应用容器引擎,它允许开发者打包应用及其依赖到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

在当今快速发展的云计算和微服务架构中,Docker 以其轻量级和便携性,成为开发者和系统管理员的得力工具。Docker 不仅简化了应用的部署流程,还提高了应用的可移植性和可扩展性。本篇博客将带领你从 Docker 的下载和安装开始,一步步深入到 Docker 的基本概念和操作,最终通过实践案例来巩固你的学习成果。

二、Docker 下载与安装

2.1 Docker 的系统要求

Docker 支持主流的操作系统,包括 Windows 10、macOS Sierra 以及各种 Linux 发行版。确保你的系统满足 Docker 的最低系统要求。

2.2 安装步骤

docker官网(别被百度前几位的广告骗了):https://www.docker.com/

安装其

①对于 Windows 的安装指南
  1. 访问 Docker 官网下载 Docker Desktop for Windows。
  2. 运行安装程序并按照提示完成安装。
  3. 通过 Windows 搜索栏搜索并打开 Docker Desktop。
②对于 macOS 的安装指南
  1. 访问 Docker 官网下载 Docker Desktop for Mac。
  2. 打开下载的 DMG 文件并拖动 Docker 到 Applications 文件夹。
  3. 打开 Docker Desktop 应用并按照提示完成安装。
③对于 Linux 的安装指南

以 Ubuntu 为例:

更新软件包索引:

bash 复制代码
sudo apt-get update

安装 Docker:

bash 复制代码
sudo apt-get install docker-ce docker-ce-cli containerd.io

三、Docker 的基本概念

3.1 镜像(Image)

Docker 镜像是只读模板,它包含了运行应用所需的所有内容------代码、运行时、库、环境变量和配置文件。

对镜像的修改有两种方式:①根据镜像生成容器,修改容器后打包为新的镜像。②根据基础镜像和Dockerfile直接生成新的镜像。

3.2 容器(Container)

容器是镜像的运行实例。它是一个轻量级、可移植的、自给自足的软件运行环境。容器诞生于镜像,但是可以进一步修改,并且可以打包为新的镜像。

四、Docker 基本命令操作

4.1 拉取镜像

使用以下命令从 Docker Hub 拉取 Ubuntu 镜像:

bash 复制代码
docker pull ubuntu

4.2 列出镜像

查看本地所有镜像:

bash 复制代码
docker images

4.3 运行容器

创建并启动一个基于 Ubuntu 镜像的容器:

bash 复制代码
docker run -it ubuntu

4.4 打包容器

将正在运行的容器保存为新镜像:

bash 复制代码
docker commit [容器ID] [新镜像名]

4.5 推送镜像

首先,你需要登录 Docker Hub(Docker Hub是docker官方的镜像仓库,但如果不使用科学上网方式有时候会难以访问):

bash 复制代码
docker login

然后推送镜像到 Docker Hub:

bash 复制代码
docker push [用户名]/[镜像名]

4.6 启动和停止容器

启动一个已停止的容器:

bash 复制代码
docker start [容器ID或名称]

停止一个正在运行的容器:

bash 复制代码
docker stop [容器ID或名称]

4.7 附加命令

  • 列出正在运行的容器:
bash 复制代码
docker ps
  • 删除一个容器:
bash 复制代码
docker rm [容器ID或名称]
  • 删除一个镜像:
bash 复制代码
docker rmi [镜像ID或名称]

五、一个简单的实操案例

假设我们需要部署一个简单的 Web 服务器。

5.1、创建 Dockerfile

创建一个包含以下内容的文件,命名为Dockerfile(没有文件拓展名!没有文件拓展名!没有文件拓展名!):

bash 复制代码
FROM nginx
COPY index.html /usr/share/nginx/html/

其中index.html是你希望服务的网页文件。

5.2、构建镜像

在 Dockerfile 所在目录执行:

bash 复制代码
docker build -t my-nginx .

5.3、运行容器

bash 复制代码
docker run -d -p 8080:80 my-nginx

这将在后台启动一个容器,并将容器的 80 端口映射到宿主机的 8080 端口。

5.4、访问应用

在浏览器中访问 http://localhost:8080,你将看到部署的 Web 应用。

六、总结

Docker 的世界非常广阔,这只是一个开始,请继续探索和学习 Docker 的高级特性和最佳实践。后续也会继续更新相关的理论与实践内容。

只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~

更多优质内容,请关注:

分片上传技术全解析:原理、优势与应用(含简单实现源码)

浏览器渲染揭秘:从加载到显示的全过程

你真的会使用Vue3的onMounted钩子函数吗?Vue3中onMounted的用法详解

通过array.filter()实现数组的数据筛选、数据清洗和链式调用

el-table实现动态数据的实时排序,一篇文章讲清楚elementui的表格排序功能

shpfile转GeoJSON且控制转化精度;如何获取GeoJSON?GeoJson结构详解

通过array.reduce()实现数据汇总、条件筛选和映射、对象属性的扁平化、转换数据格式等

极致的灵活度满足工程美学:用Vue Flow绘制一个完美流程图

Mapbox添加行政区矢量图层、分级设色图层、自定义鼠标悬浮框、添加天地图底图等

管理数据必备!侦听器watch用法详解

相关推荐
lldhsds8 分钟前
书生大模型实战营第四期-入门岛-1. Linux前置基础
linux
wowocpp31 分钟前
ubuntu 22.04 硬件配置 查看 显卡
linux·运维·ubuntu
山河君43 分钟前
ubuntu使用DeepSpeech进行语音识别(包含交叉编译)
linux·ubuntu·语音识别
鹏大师运维1 小时前
【功能介绍】信创终端系统上各WPS版本的授权差异
linux·wps·授权·麒麟·国产操作系统·1024程序员节·统信uos
筱源源1 小时前
Elasticsearch-linux环境部署
linux·elasticsearch
萨格拉斯救世主1 小时前
jenkins使用slave节点进行node打包报错问题处理
运维·jenkins
川石课堂软件测试1 小时前
性能测试|docker容器下搭建JMeter+Grafana+Influxdb监控可视化平台
运维·javascript·深度学习·jmeter·docker·容器·grafana
Gemini19952 小时前
分布式和微服务的区别
分布式·微服务·架构
pk_xz1234563 小时前
Shell 脚本中变量和字符串的入门介绍
linux·运维·服务器
小珑也要变强3 小时前
Linux之sed命令详解
linux·运维·服务器