【Docker】初学者 Docker 基础操作指南:从拉取镜像到运行、停止、删除容器

在现代软件开发和部署中,容器化技术已经成为一种常见的方式,它能够提供一种轻量级、可移植和可扩展的应用程序打包和部署解决方案。Docker 是目前最流行的容器化平台之一,它提供了一整套工具和技术,使得容器的创建、运行和管理变得简单和高效。在这里插入图片描述

本教程旨在为 Docker 的初学者提供一个简单明了的入门指南,介绍 Docker 的基础操作。我们将从拉取 Docker 镜像开始,逐步学习如何创建、运行、停止和删除容器,以及一些其他常用操作,为进一步应用打下基础。

文章目录

    • 什么是镜像和容器?
    • 提醒
    • 0. 安装 Docker
    • 1. 搜索镜像 (docker search)
    • 2. 拉取镜像(docker pull)与列出本地镜像(docker images)
    • 3. 创建容器(docker create)
    • 4. 开启容器(docker start)与启动容器(docker run)
    • 5. 停止容器(docker stop)
    • 6. 删除容器(docker rm)
    • 7. 其他常用命令

首先介绍两个基本概念:镜像容器

什么是镜像和容器?

  1. 镜像(Image):镜像是一个轻量级、独立、可执行的软件包,其中包含了运行应用程序所需的所有内容加粗样式,包括代码、运行时环境、库、环境变量和配置文件等。镜像是容器的基础,可以用来创建一个或多个容器实例。

  2. 容器(Container):容器是从镜像创建的一个运行实例,它包含了镜像的内容以及额外的可写层,使得容器可以被启动、停止、移动和删除。当启动一个容器时,它实际上是在主机操作系统的隔离环境中运行的一个进程。这个隔离环境使得容器可以独立运行,并且不受主机或其他容器的影响

提醒

如果需要,你可能需要在每个Docker命令前面加上sudo,具体取决于具体的系统配置和用户权限。

0. 安装 Docker

首先,你需要安装 Docker,可以根据自己的操作系统选择合适的安装方法,可以参考 Docker 官方文档:https://docs.docker.com/get-docker/

1. 搜索镜像 (docker search)

docker search 命令用于在 Docker Hub 上搜索镜像。如果想要搜索nginx,执行以下命令即可

docker search nginx

搜索结果如下,包括其名称、描述以及在 Docker Hub 中的 Star 数量:

NAME                                              DESCRIPTION                                     STARS     OFFICIAL
nginx                                             Official build of Nginx.                        19632     [OK]
unit                                              Official build of NGINX Unit: Universal Web …   21        [OK]
nginx/nginx-ingress                               NGINX and  NGINX Plus Ingress Controllers fo…   88        
nginxinc/nginx-unprivileged                       Unprivileged NGINX Dockerfiles                  141       
nginx/nginx-prometheus-exporter                   NGINX Prometheus Exporter for NGINX and NGIN…   36            
... (省略部分结果)

:Nginx 是一个流行的开源的高性能 Web 服务器和反向代理服务器。在 Docker 中,nginx是官方提供的 Nginx 镜像的名称,用于方便用户快速获取和部署 Nginx 服务器。在教程中选择了 Nginx 作为示例镜像,以便展示 Docker 中常见的操作流程。

:Docker Hub 是一个免费的公共镜像仓库,提供了数以千计的官方和社区维护的 Docker 镜像。您可以在 Docker Hub 上搜索各种镜像,例如操作系统镜像、应用程序镜像等。在使用 docker search 命令时,会默认搜索 Docker Hub 上的镜像。

2. 拉取镜像(docker pull)与列出本地镜像(docker images)

使用 docker pull 命令拉取一个 Docker 镜像。例如,我们拉取一个名为 nginx 的镜像:

docker pull nginx

等待下载完成即可。

docker images 命令用于列出本地系统中的已下载的 Docker 镜像:

docker images

打印结果如下:

REPOSITORY                  TAG       IMAGE ID       CREATED         SIZE
nginx                       latest    e4720093a3c1   8 days ago      187MB
sulinggg/openwrt            x86_64    3d9db27509a6   9 months ago    223MB

3. 创建容器(docker create)

使用 docker create 命令创建一个容器。以下是创建一个名为 my_nginx 的容器的示例:

docker create --name my_nginx nginx

4. 开启容器(docker start)与启动容器(docker run)

使用 docker start 命令开启创建的容器:

docker start my_nginx

还有一个命令是 docker run,用于不同的场景:
(1) docker run命令用于创建并启动一个新的容器。当您需要创建一个新的容器,并且希望立即启动该容器时,应该使用 docker run命令,例如:

docker run ubuntu /bin/bash

docker run相当于执行了两步操作:将镜像放入容器中(docker create),然后将容器启动,使之变成运行时容器(docker start)。
在这里插入图片描述

(3) docker start 命令用于启动一个已经存在的容器。如果使用这个命令,我们必须事先知道这个容器的ID,或者这个容器的名称,我们可以使用 docker ps 找到该容器的信息。
例如,当你停止了一个运行中的容器后,可以使用 docker start 命令重新启动该容器:

docker start my_container

5. 停止容器(docker stop)

使用 docker stop 命令停止容器:

docker stop my_nginx

6. 删除容器(docker rm)

使用 docker rm 命令删除容器:

docker rm my_nginx

7. 其他常用命令

  1. 容器日志查看:使用 docker logs 命令查看容器日志,例如 docker logs my_nginx
  2. 容器内部执行命令:使用 docker exec 命令在运行中的容器内执行命令,例如 docker exec -it my_nginx bash。其中参数-it表示交互式模式,即 -i(交互式)和 -t(终端)。
  3. 容器列表查看:使用 docker ps 命令查看运行中的容器列表,加上-a 参数可以查看所有容器列表,包括停止的容器。
  4. 当使用 docker run 命令时,除了常见参数 -d(后台运行)和 -p(端口映射)之外,还有一些其他常用参数:
    -v:挂载主机目录到容器内部,用于数据持久化。
    -e:设置容器内的环境变量。
    --name:为容器指定一个自定义的名称。
    -i:启动一个交互式容器。
    -t:为容器分配一个伪终端。
    --restart:指定容器退出时的重启策略。
    --network:指定容器所属的网络模式。
    --link:链接另一个容器。

希望这个教程能够帮助你入门 Docker并掌握常用的基本操作。

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Linux(ACT)权限管理

文章目录 一、 ATC简介二、 案例1. 添加测试目录、用户、组,并将用户添加到组2. 修改目录的所有者和所属组3. 设定权限4. 为临时用户分配权限5. 验证acl权限 6. 控制组的acl权限 一、 ATC简介 ACL(Access Control List,访问控制列表&#xf…

GPT-SoVITS 快速声音克隆使用案例:webui、api接口

参考: https://github.com/RVC-Boss/GPT-SoVITS 环境: Python 3.10 PyTorch 2.1.2, CUDA 12.0 安装包: 1、使用: 1)下载项目 git clone https://github.com/RVC-Boss/GPT-SoVITS.git2)下载预训练模型 https://huggingface.co/lj1995/GPT-SoVITS 下载模型文件放到GPT…

NXP实战笔记(八):S32K3xx基于RTD-SDK在S32DS上配置LCU实现ABZ解码

目录 1、概述 2、SDK配置 2.1、IO配置 2.2、TRGMUX配置 2.3、LCU配置 2.4、Trgmux配置 2.5、Emios配置 2.6、代码实现 1、概述 碰到光电编码器、磁编码器等,有时候传出来的位置信息为ABZ的方式,在S32K3里面通过TRGMUX、LCU、Emios结合的方式可以实现ABZ解码。 官方…

【深入理解设计模式】建造者设计模式

建造者设计模式 建造者设计模式(Builder Pattern)是一种创建型设计模式,旨在通过将复杂对象的构建过程拆分成多个简单的步骤,使得相同的构建过程可以创建不同的表示。该模式允许您使用相同的构建过程来创建不同的对象表示。 概述…

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的疲劳驾驶检测系统(Python+PySide6界面+训练代码)

摘要:本研究详述了一种采用深度学习技术的疲劳驾驶检测系统,该系统集成了最新的YOLOv8算法,并与YOLOv7、YOLOv6、YOLOv5等早期算法进行了性能评估对比。该系统能够在各种媒介——包括图像、视频文件、实时视频流及批量文件中——准确地识别疲…

AI工具新革命:从ChatGPT到Sora,生成式AI改变世界

这个春节着实精彩,“春山学”吃透了,不如把目光移向OpenAI又一重磅产品——文生视频大模型Sora。智能新纪元已然开启,因为正如周鸿祎所说:“,Sora的诞生意味着AGI(通用人工智能)的实现将从10年缩短到1年。”…

为什么选择 SaaS SIEM ?

当今的企业越来越依赖技术,这意味着无懈可击的网络安全的重要性怎么强调也不为过。随着组织应对现代数字生态系统的复杂性,维护系统的完整性已不再只是“可有可无”,而是一种必需。  这就是安全信息和事件管理 (SIEM)作为网络安全中最重要…

Stable Diffusion 绘画入门教程(webui)-ControlNet(Seg)

上篇文章介绍了深度Depth,这篇文章介绍下seg(Segmentation) 意思为语义分割, 通俗理解就是把图中的不同物体元素按类别不同,标为不同的颜色,不同的颜色代表不同的元素类别,如下图,左边为原图&a…

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的人脸表情识别系统(附完整资源+PySide6界面+训练代码)

摘要:本篇博客呈现了一种基于深度学习的人脸表情识别系统,并详细展示了其实现代码。系统采纳了领先的YOLOv8算法,并与YOLOv7、YOLOv6、YOLOv5等早期版本进行了比较,展示了其在图像、视频、实时视频流及批量文件中识别人脸表情的高…

洛谷 P1038 [NOIP2003 提高组] 神经网络【拓扑序处理】

原题链接:https://www.luogu.com.cn/problem/P1038 题目背景 人工神经网络(Artificial Neural Network)是一种新兴的具有自我学习能力的计算系统,在模式识别、函数逼近及贷款风险评估等诸多领域有广泛的应用。对神经网络的研究一…

动态绑定样式,uniapp,用三元运算动态绑定多个class类样式,动态绑定的样式可以和原始样式共存

介绍 | uni-app官网 vue、uniapp中动态添加绑定style、class 9种方法实现_vue style动态绑定-CSDN博客 uniapp使用三元运算符动态绑定元素的style样式_uniapp style动态绑定-CSDN博客 对象写法,可以写多个class类 class类的名字:判断条件,最后结果只有…

【TEE论文】硬件辅助安全全面调查:从边缘到云(综述)

原文:A comprehensive survey of hardware-assisted security: From the edge to the cloud 1. 引言 从在中央存储库(例如云主机)中处理收集的传感器数据的传统部署,到更高级的解决方案,例如新兴的边缘计算领域&…

CS50x 2024 - Lecture 8 - HTML, CSS, JavaScript

00:00:00 - Introduction 关于互联网是怎么工作的,如何在他的基础上构建软件 HTML和CSS是描述性语言 javascript一种编程语言,在浏览器上下文中很有用,使得界面更具交互性,也用于服务器 00:01:01 - Bingo Board 00:01:51 - T…

.net core wbeapi 关于swagger的配置

当创建好一个webapi之后,在Program.cs中注释掉原本的AddSwaggerGen,修改为如下配置 Program.cs //builder.Services.AddSwaggerGen();builder.Services.AddSwaggerGen(options >{options.SwaggerDoc("v1", new OpenApiInfo{Version "…

Rainbond实战:3分钟搭建一个私有笔记服务-Joplin

Joplin 是一款开源的笔记和待办事项应用程序,支持Markdown编辑和多端同步,并且可以私有化部署,对于像我这样习惯使用Markdown写作的人来说,简直是一大福音。在此之前我用过一些云笔记服务,但是随着“降本增效”&#x…

unity学习(38)——创建(create)角色脚本(panel)--EventSystem

1.在scripts文件夹下创建一个脚本CreatePlayerPanel.cs,脚本挂到panel上!给panel加个tag,叫createPanel,脚本内容如下: using System.Collections; using System.Collections.Generic; using TMPro; using UnityEngin…

RabbitMQ-消息队列:发布确认高级

18、发布确认高级 在生产环境中由于一些不明原因,导致 RabbitMQ 重启,在 RabbitMQ 重启期间生产者消息投递失败, 导致消息丢失,需要手动处理和恢复。于是,我们开始思考,如何才能进行 RabbitMQ 的消息可靠投…

如何使用Inno Setup制作Unity构建程序的Windows安装程序

1. 准备 (1)准备好Unity构建的程序集合 必须包括: Data文件夹(xxx_Data) Mono文件夹(MonoBleedingEdge) 打包的应用程序文件(xxx.exe) Unity播放器dll文件&#xff…

瑞_23种设计模式_装饰者模式

文章目录 1 装饰者模式(Decorator Pattern)1.1 介绍1.2 概述1.3 装饰者模式的结构 2 案例一2.1 需求2.2 代码实现 3 案例二3.1 需求3.2 代码实现 4 JDK源码解析5 总结5.1 装饰者模式的优缺点5.2 装饰者模式的使用场景5.3 装饰者模式 VS 代理模式 &#x…

Python+Selenium-使用Pillow库进行元素截图

1. Pillow库 Pillow库是Python图像处理的基库,是一个免费开源的第三方库。 通过Python PyPi第三方库官网(https://pypi.org/project/Pillow/#files)下载与平台系统相对应的版本: 下载完成后,进入下载文件的所在位置&…