【入门】新手如何使用Docker?

news/2025/3/19 16:01:48/文章来源:https://www.cnblogs.com/cqx-test/p/18781183

Docker 是一种轻量级的容器化技术,用于快速构建、部署和运行应用程序。以下是 Docker 的基本使用方法和常用命令:

 

一、Docker 的核心概念
1. 镜像(Image)
- 一个只读模板,包含运行应用程序所需的所有文件、依赖和配置。
- 例如:nginx、mysql、ubuntu 等。

2. 容器(Container)
- 镜像的运行实例,是一个独立的、轻量级的虚拟环境。
- 容器之间相互隔离,共享主机操作系统内核。

3. 仓库(Repository)
- 用于存储和分发镜像的地方,例如 Docker Hub(https://hub.docker.com/)。

 

二、Docker 的安装
1. 在 Linux 上安装
bash
更新包管理器
sudo apt-get update

安装 Docker
sudo apt-get install docker.io

启动 Docker 服务
sudo systemctl start docker

设置开机自启
sudo systemctl enable docker

2. 在 Windows/Mac 上安装
- 下载 Docker Desktop 安装包(https://www.docker.com/products/docker-desktop)。
- 安装后,启动 Docker Desktop 即可。

 

三、Docker 的基本使用

1. 拉取镜像
从 Docker Hub 拉取镜像到本地:
bash
docker pull <镜像名>:<标签>

例如:
bash
docker pull nginx:latest

2. 查看本地镜像
列出本地已下载的镜像:
bash
docker images

3. 运行容器
基于镜像创建并启动容器:
bash
docker run [选项] <镜像名>:<标签>

常用选项:
-d:后台运行(守护模式)。
-p <主机端口>:<容器端口>:端口映射。
--name <容器名>:为容器指定名称。
-v <主机目录>:<容器目录>:挂载数据卷。

例如:
bash
docker run -d -p 80:80 --name my-nginx nginx:latest

4. 查看运行中的容器
列出正在运行的容器:
bash
docker ps

查看所有容器(包括已停止的):
bash
docker ps -a

5. 停止容器
停止运行中的容器:
bash
docker stop <容器ID或容器名>

6. 启动已停止的容器
启动已停止的容器:
bash
docker start <容器ID或容器名>

7. 进入容器
进入运行中的容器执行命令:
bash
docker exec -it <容器ID或容器名> /bin/bash

8. 删除容器
删除已停止的容器:
bash
docker rm <容器ID或容器名>

9. 删除镜像
删除本地镜像:
bash
docker rmi <镜像ID或镜像名>

 

四、Docker 的高级用法

1. 构建自定义镜像
1. 创建 Dockerfile 文件,定义镜像构建步骤:
Dockerfile
FROM ubuntu:latest
RUN apt-get update && apt-get install -y nginx
CMD ["nginx", "-g", "daemon off;"]

2. 构建镜像:
bash
docker build -t my-nginx:latest .

2. 数据卷管理
1. 创建数据卷:
bash
docker volume create my-volume

2. 使用数据卷:
bash
docker run -v my-volume:/app nginx:latest

3. 网络管理
1. 创建自定义网络:
bash
docker network create my-network

2. 使用自定义网络:
bash
docker run --network my-network nginx:latest

4. 容器日志
查看容器日志:
bash
docker logs <容器ID或容器名>

 

五、Docker 的常用命令总结
| 命令 | 功能描述 |
| docker pull <镜像名> | 拉取镜像 |
| docker images | 查看本地镜像 |
| docker run <镜像名> | 运行容器 |
| docker ps | 查看运行中的容器 |
| docker stop <容器ID> | 停止容器 |
| docker start <容器ID> | 启动容器 |
| docker exec -it <容器ID> bash | 进入容器 |
| docker rm <容器ID> | 删除容器 |
| docker rmi <镜像ID> | 删除镜像 |
| docker build -t <镜像名> . | 构建自定义镜像 |
| docker logs <容器ID> | 查看容器日志 |

 

六、学习资源
- 官方文档:https://docs.docker.com/
- Docker Hub:https://hub.docker.com/
- Docker 社区:https://forums.docker.com/

 

总结
Docker 提供了一种高效、轻量级的应用部署方式,通过镜像和容器的概念,简化了开发、测试和运维流程。从拉取镜像、运行容器开始,逐步掌握构建镜像、管理数据卷和网络等高级功能,可以更好地利用 Docker 提升工作效率。

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

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

相关文章

Allure的下载安装以及自动生成测试报告

一、下载Allure压缩包 访问此链接:https://repo.maven.apache.org/maven2/io/qameta/allure/allure-commandline/ 根据你个人的需求,下载对应的allure版本即可,哪个兼容就下载哪个,需要哪个下载哪个。 比如,小编自己就随便下载了一个版本 下载完成之后,将下载好的安装包解…

referrerpolicy-以最小的成本实现系统的图片上传

背景 系统上传图片一般有以下三种方案:购买云存储(比如 AWS S3、阿里云 OSS、腾讯云 COS),获取图片URL 直接将图片上传到服务器,存储在本地作为静态资源 使用第三方的图片服务(比如有道、博客园),借用对方资源结合本系统需求:自建博客尽可能减少预算,方案1放弃;方案…

grafana创建下拉框

grafana如何创建下拉框: 1.在dashabord中进行配置: 1.1进入你想要添加下拉框的dashboard中,点击Edit1.2 点击Settings 1.3 选择Variables-》Add New variable 1.4 选择variable type,输入变量的name,label 选择数据源data source 写入sql,点击Run query可以立马查看到查询出…

一次100W+数据级别的渲染优化

组织架构的列表页有关于公司人员架构的树形结构展示,某大客户有10万员工,造成组织架构的列表渲染卡顿,用户点击经常造成页面崩溃。 需求背景:左边是树形目录,多层级展示,层级结构未作限制。点击左边目录会展示对应的列表,点击右边对应用户的组织属性,也会联动左边的目录…

小程序 反编译

背景 小程序测试难点,数据包加密?有签名存在?导致测试受阻 工具 wedecode wedecode https://github.com/biggerstar/wedecode1.首次使用,源码安装方式 git clone https://github.com/biggerstar/wedecode npm install # 如果 npm 安装很慢, 可以使用右侧命令换国内的淘宝…

日志文件必须输出到控制台才香对吗

在实际工作中发现很多人喜欢将日志输出到控制台,有的甚至直接只是输出到控制台,都不输出到日志文件中。 这种操作看似人畜无害,实际上直接影响着系统的性能,很多时候还难以排查,这里我从实际举例都背后原因来分析为什么这么做并不香。通常的日志配置 这里我们使用经常使用…

C#通过FTP获取服务端文件

一、简介实际需求是在前端修改了配置文件后,由上位机统一分发给所有设备,因为下位机支持FTP协议,因此选用FTP来实现文件传输功能。 二、准备工作 1、FTP服务搭建FTP服务端选用FileZilla Server,免费开源,简单好用,可以下载中文版的。下载地址:下载 - FileZilla中文网,也…

20242942 2024-2025-2 《网络攻防实践》实验三

1.实验内容 (1)动手实践tcpdump 使用tcpdump开源软件对在本机上访问www.tianya.cn网站过程进行嗅探,回答问题:你在访问www.tianya.cn网站首页时,浏览器将访问多少个Web服务器?他们的IP地址都是什么? (2)动手实践Wireshark 使用Wireshark开源软件对在本机上以TELNET方式…

Oracle OCP认证没落了吗?

Oracle OCP认证没落了吗? Oracle的OCP认证是数据库领域必考的一个认证,但随着国产化的发展,国内很多企业开发了自己的数据库产品,这种情况对很多人造成了错误的认识:OCP被淘汰了吗?不然,从行业需求、技术趋势、认证体系变化等角度综合分析,Oracle OCP证书并未完全“没…

查看dll文件的publicKeyToken

输入: SN -T "C:\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin\log4net.dll"

把 DeepSeek 接入电话系统后,不知疲倦的智能客服向我们走来了

我们基于deepseek和Freeswitch做了一个智能电话客服。 它会基于给定的FAQ知识库来回答问题,自动进行语音识别和语音合成。 语音识别我们采用的是开源的FunAsr,语音合成采用的是第三方商用的API接口。我们接下来介绍下它的内部组成部分。【 第一阶段】当电话拨通电话后,电话服…

Seata的工作模式

Seata的分布式模型中各个角色的作用: 1.TM(事务管理器)是分布式事务的发起方,负责定义全局事务的边界(开始,提交,回滚),并于TC交互协调事务状态。 核心职责: ​ 通过@GlobalTransctional注解标记全局事务的起点。 ​ 向TC注册全局事务 ​ 根据业务逻辑决定全局事务的提交或回滚…