Docker 从入门到进阶 (Win 环境) + Docker 常用命令

目录

引言

一、准备工作

1.1 系统要求

1.2 启用虚拟化

二、安装Docker

2.1 安装WSL 2

2.2 安装Docker Desktop

2.3检查是否安装成功

三、配置Docker

3.1 打开Docker配置中心

四、下载和管理Docker镜像

4.1 拉取镜像

4.2 查看已下载的镜像

4.3 运行容器

4.4 查看正在运行的容器

4.5 停止容器

4.6 删除容器

4.7 删除镜像

五、高级管理技巧

5.1 使用Docker Compose

5.2 使用Dockerfile构建镜像

六、常见问题及解决方案

6.1 Docker服务无法启动

6.2 镜像拉取失败

结语

参考文档:


引言

在当今的软件开发领域,Docker已经成为容器化应用的首选工具。它不仅简化了应用的部署和管理,还确保了应用在不同环境中的一致性。Docker凭借​​"一次构建,处处运行"​​的特性成为开发者必备神器。但很多Windows用户初次接触时总在安装配置环节踩坑,本文不仅提供保姆级教程,助力大家在Windows环境下安装Docker,并学会如何下载和管理镜像。

一、准备工作
1.1 系统要求

在开始之前,请确保您的Windows系统满足以下要求:

  • Windows 10 或更高版本
  • 启用虚拟化功能(在BIOS中开启)
1.2 启用虚拟化
  1. 打开任务管理器:按 Ctrl + Shift + Esc
  2. 查看虚拟化状态:选择“性能”标签页,查看“CPU”部分,确认“虚拟化”已启用

二、安装Docker
2.1 安装WSL 2

Windows Subsystem for Linux(WSL)是运行Linux二进制可执行文件的兼容层。

  1. 打开命令提示符:按 Win + R,输入cmd,按回车
  2. 安装WSL:输入以下命令并按回车:
    wsl --install
    
  3. 重启计算机:安装完成后,重启计算机以完成WSL的安装
2.2 安装Docker Desktop
  1. 下载Docker Desktop:访问 Docker官网 下载安装包

  1. 运行安装程序:双击下载的安装包,按照提示 (全部默认选项) 完成安装
  2. 启动Docker Desktop:安装完成后,启动 Docker Desktop (启动很重要,可以不登录)
2.3检查是否安装成功

(1)我们在 CMD 终端中输入如下命令:

docker --version


(2)如果成功返回版本信息,则说明 Docker 安装成功了

(3)或者执行 docker ps 后返回(docker ps 这个命令是查看正在运行的容器)

也说明 Docker 安装成功了

三、配置Docker
3.1 打开Docker配置中心
  1. 启动Docker Desktop:点击系统托盘中的Docker图标,选择“Settings”。
  2. 配置国内镜像源(很重要):在“Docker Engine”标签页中,找到"registry-mirrors"字段,添加国内镜像源,例如:
    {"registry-mirrors": ["https://do.nark.eu.org","https://dc.j8.work","https://docker.m.daocloud.io","https://dockerproxy.com","https://dockermirrors.ustc.edu.cn","https://docke.nju.edu.cn"]
    }
    
  3. 应用更改:点击“Apply & Restart”

  • 之后执行
  • docker info

    看到以下内容,说明成功添加

四、下载和管理Docker镜像
4.1 拉取镜像
  1. 打开命令提示符:按 Win + R,输入cmd,按回车
  2. 拉取镜像:使用以下命令拉取所需的镜像,例如:(nginx是很知名的HTTP和反向代理web服务器)
    docker pull nginx
4.2 查看已下载的镜像

使用以下命令查看已下载的镜像:

docker images
4.3 运行容器

使用以下命令运行一个容器:

docker run --name my-nginx -d -p 8080:80 nginx
  • --name:指定容器名称
  • -d:后台运行容器
  • -p:端口映射,将主机的8080端口映射到容器的80端口
4.4 查看正在运行的容器

使用以下命令查看正在运行的容器:

docker ps
4.5 停止容器

使用以下命令停止一个容器:

docker stop my-nginx
4.6 删除容器

使用以下命令删除一个容器:

docker rm my-nginx
4.7 删除镜像

使用以下命令删除一个镜像:

docker rmi nginx
五、高级管理技巧
5.1 使用Docker Compose

Docker Compose是一个用于定义和运行多容器应用的工具

  1. 安装Docker Compose:访问Docker Compose GitHub页面下载最新版本
  2. 创建docker-compose.yml文件:编写一个YAML文件来描述应用的服务,例如:
    version: '3'
    services:web:image: nginxports:- "8080:80"
    
  3. 启动服务:在docker-compose.yml文件所在目录下,运行以下命令:
    docker-compose up -d
    
5.2 使用Dockerfile构建镜像

Dockerfile是一个用于构建Docker镜像的脚本文件

  1. 创建Dockerfile:编写一个Dockerfile,例如:
    FROM nginx
    COPY index.html /usr/share/nginx/html/
    
  2. 构建镜像:在Dockerfile所在目录下,运行以下命令:
    docker build -t my-custom-nginx .
    
六、常见问题及解决方案
6.1 Docker服务无法启动
  • 检查虚拟化是否启用:确保BIOS中虚拟化功能已开启
  • 检查Docker Desktop设置:确保配置正确,特别是镜像源设置
6.2 镜像拉取失败
  • 检查网络连接:确保网络畅通。
  • 更换镜像源:尝试使用其他国内镜像源
结语

通过本文的详细指南,您应该能够在Windows环境下顺利安装和配置Docker,并掌握下载和管理镜像的基本操作

Docker的强大功能将大大简化您的应用部署和管理流程,提升开发效率

现在,你已经掌握了Windows下Docker的核心技能!

参考文档:

【1】Windows环境下使用Docker下载并管理镜像的完整指南 - 云原生实践

【2】改变软件行业的技术!Docker 10分钟完全入门指南_哔哩哔哩_bilibili

【3】[国内镜像加速] Docker运行hello-world镜像失败或超时-CSDN博客

【4】Docker 命令指南 - PowerShell 在 Win 环境运行 - 云原生实践

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/74805.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机视觉5——运动估计和光流估计

一、运动估计 (一)运动场(Motion Field) 定义与物理意义 运动场是三维场景中物体或相机运动在二维图像平面上的投影,表现为图像中每个像素点的运动速度矢量。其本质是场景点三维运动(平移、旋转、缩放等&a…

介质访问控制——信道划分

什么是介质访问 介质访问(Medium Access)​ 是计算机网络中一种规则,用来解决 ​​“多台设备如何共享同一根网线/信道传输数据”​ 的问题。你可以理解为: 想象一条只能容一辆车通过的独木桥(网络中的网线、Wi-Fi信道…

ERP系统五大生产模式概述

制造业中,选择合适的生产模式是企业高效运营的关键。 以下是ERP系统支持的五大核心生产模式及其特点总结: 1. MTS(按库存生产) - 定义:先生产后销售,基于需求预测提前备货。 - 适用场景:需求稳定、标准化程度高的产品(如日用品、家电)。 - 优点:交货快、生产…

ubantu操作笔记

安装ssh服务 1.1 基本安装 sudo apt update sudo apt install openssh-server -y sudo systemctl start ssh sudo systemctl enable ssh 1.2 配置远程root登陆 # 0. 设置root密码 sudo passwd root # 1. 安装vim依赖 sudo apt-get install vim -y # 2. 编辑配置文件 s…

2-vim编辑器的安装和使用

一.常用工具介绍 前言: 我们想要编写c语言代码,可以使用linux系统提供的工具才能进行代码的编辑。代码编写后,我们还需要验证代码的书写正确。这就需要借助编译器来进行验证。linux系统为我们提供了比较好的开发工具。 vim编辑器&#xff…

小刚说C语言刷题——第16讲 switch语句

在日常生活中,我们经常会遇到多分支的情况。当分支较多时,我们可以用嵌套的if-else语句。但是这样会让结构显得混乱。这个时候我们可以考虑用switch语句。 1.语法格式 switch (表达式) { case 常量表达式1: 语句1; break; case 常量表达式…

使用 Python 连接 PostgreSQL 数据库,从 `mimic - III` 数据库中筛选数据并导出特定的数据图表

要使用 Python 连接 PostgreSQL 数据库,从 mimic - III 数据库中筛选数据并导出特定的数据图表,你可以按照以下步骤操作: 安装所需的库:psycopg2 用于连接 PostgreSQL 数据库,pandas 用于数据处理,matplot…

过孔的载流能力

PCB过孔的载流能力(即能安全承载的电流大小)主要与以下因素相关: 1. 过孔的尺寸 孔径(直径):孔径越大,横截面积越大,载流能力越强。 孔壁铜厚:电镀铜的厚度&#xff08…

(done) 并行计算 CS149 Lecture2 (现代多核处理器) (SIMD, 多核, 超标量, 数据预取, 超线程)

视频 url: https://www.bilibili.com/video/BV1du17YfE5G?spm_id_from333.788.videopod.sections&vd_source7a1a0bc74158c6993c7355c5490fc600&p2 大佬笔记 url: https://zhuanlan.zhihu.com/p/8129089606 先看视频: Lecture 0 ~ 28min 的内容基本就是 c…

Leetcode 3508. Implement Router

Leetcode 3508. Implement Router 1. 解题思路2. 代码实现 题目链接:3508. Implement Router 1. 解题思路 这一题就是按照题意写作一下对应的函数即可。 我们需要注意的是,这里,定义的类当中需要包含以下一些内容: 一个所有i…

Linux: 系统内核中的信号

目录 一 前言 二 信号在内核中的表示 三 sigset_t 四 信号集操作 1. sigpending() 2. sigemptyset() 3. sigfillset() 4. sigaddset ()和sigdelset() 5. sigismember() 6. sigprocmask() 五 深入理解信号的捕捉流程 一 前言 在Linux: 进程信号初识-CSDN博客信…

Nginx-keepalived-高可用

Nginx 高可用 通常 借助 Keepalived 实现, Keepalived 能通过 VRRP (虚拟路由冗余协议)让多个 Nginx 服务器 组成一个 热备集群,当主服务器故障时自动切换到备用服务器,保障服务不间断。 一、环境准备 角色IP 地址主…

使用python完成手写数字识别

入门图像识别的第一个案例,看到好多小伙伴分享,也把自己当初的思路捋捋,写成一篇博客,作为记录和分享,也欢迎各位交流讨论。 实现思路 数据集:MNIST(包含60,000个训练样本和10,000个测试样本) 深度学习框架:Keras(基于TensorFlow) 模型架构:卷积神经网络(CNN) 实…

Java学习总结-多线程-三种创建方法

什么是线程? 线程(Thread)是程序内部的一条执行流程。 程序如果只有一条执行流程,那这个程序就是单线程程序。 什么是多线程? 多线程是指从软硬件上实现的多条执行流程的技术(多条线程由CPU负责调度执行…

电动垂直起降飞行器(eVTOL)

电动垂直起降飞行器(eVTOL)的详细介绍,涵盖定义、技术路径、应用场景、市场前景及政策支持等核心内容: 一、定义与核心特性 eVTOL(Electric Vertical Take-off and Landing)即电动垂直起降飞行器&#xf…

ensp 网络模拟器 思科华为基于VLANIF的公司网络搭建

该文章仅记录作业配置过程 如有雷同纯属巧合 一. 其它(共1题,100分) 1. (其它) 为大学生公司创建部门VLAN 1.项目 背景 为大学生公司现有财务部、技术部和业务部,出于数据安全的考虑,各部门的计算机需进行隔离。公…

使用`sklearn`中的逻辑回归模型进行股票的情感分析,以及按日期统计积极和消极评论数量的功能

以下是完成上述任务的Python代码,可在Jupyter Notebook中运行。此代码包含了使用sklearn中的逻辑回归模型进行情感分析,以及按日期统计积极和消极评论数量的功能。 import pandas as pd from sklearn.feature_extraction.text import TfidfVectorizer f…

oracle批量删除分区

为了清理数据,往往需要删除一些分区 简单查看当前分区 附件 --创建测试表 -- drop table test_part purge;CREATE TABLE test_part (sales_id NUMBER,sale_date DATE,amount NUMBER ) PARTITION BY RANGE (sale_date) INTERVAL (INTERVAL 1 MONTH) -- 每个月创建…

java流程控制08:For循环

For循环 虽然所有循环结构都可以用while或者do…while表示,但Java提供了另一种语句-----for循环,使一些循环结构变得更加简单。 for循环语句是支持迭代的一种通用结构,是最有效、最灵活的循环结构。 for循环执行的次数是在执行前就确定的。…

嵌入式软件开发调试方法

文章目录 1. 利于函数返回值,retrurn 定位错误位置2. 合理使用逻辑分析仪(正点原子 厉害!!) 1. 利于函数返回值,retrurn 定位错误位置 如下图所示,设置不同的返回值,0是ok的,其他值均为失败&…