【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://www.rhkb.cn/news/262782.html

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

相关文章

每日一题(寻找奇数,寻找峰值)

寻找奇数_牛客题霸_牛客网 (nowcoder.com) #include <stdio.h> #include<stdlib.h> int main() {int n0;int num0;scanf("%d",&n);int* arr(int*)malloc(sizeof(int)*n);int i0;for(i0;i<n;i){scanf("%d",&arr[i]);//在循环内&…

2024生物发酵魅力展示会-光德流体

参展企业介绍 河北光德流体控制有限公司始建于1996年&#xff0c;是一家从事以不锈钢为母材的洁净应用材料研发与专业制造的实体企业。产品主要包括卫生级球阀&#xff0c;隔膜阀&#xff0c;蝶阀等&#xff0c;并广泛应用于生物发酵&#xff0c;医疗制药&#xff0c;食品饮料…

IDEA查询对应功能的快捷键

首先要知道快捷键的key叫什么&#xff0c;然后通过key来找到对应的快捷键 比如下面这个查找删除导入未使用的类 跳转 或者安装对应插件

C++之类作用域

目录 1、全局作用域 2、类作用域 2.1、设计模式之Pimpl 2.2、单例模式的自动释放 2.2.0、检测内存泄漏的工具valgrind 2.2.1、可以使用友元形式进行设计 2.2.2、内部类加静态数据成员形式 2.2.3、atexit方式进行 2.2.4、pthread_once形式 作用域可以分为类作用域、类名…

使用logicflow流程图实例

一.背景 需要使用流程引擎开发项目&#xff0c;没有使用flowable、activiti这类的国外流程引擎&#xff0c;想使用国内的引擎二次开发&#xff0c;缺少单例模式的流程画图程序&#xff0c;都是vue、react、angluer的不适合&#xff0c;从网上找了antx6、logicflow、bpmn.js。感…

windows前后端项目部署

装好windows虚拟机 1.远程连接 计算机右击属性&#xff0c;高级防火墙设置&#xff0c;远程连接服务允许 2.安装jdk,tomcat&#xff0c;解压工具 把安装包拖进去 双击安装解压软件 jdk安装 双击安装 配置环境变量&#xff08;复制jdk路径&#xff09; 计算机右击属性高级…

挑战30天学完Python:Day16 日期时间

&#x1f4d8; Day 16 &#x1f389; 本系列为Python基础学习&#xff0c;原稿来源于 30-Days-Of-Python 英文项目&#xff0c;大奇主要是对其本地化翻译、逐条验证和补充&#xff0c;想通过30天完成正儿八经的系统化实践。此系列适合零基础同学&#xff0c;或仅了解Python一点…

深度学习中数据的转换

原始&#xff08;文本、音频、图像、视频、传感器等&#xff09;数据被转化成结构化且适合机器学习算法或深度学习模型使用的格式。 原始数据转化为结构化且适合机器学习和深度学习模型使用的格式&#xff0c;通常需要经历以下类型的预处理和转换&#xff1a; 文本数据&#xf…

网关服务gateway注册Consul时报错Consul service ids must not be empty

网关服务gateway启动时&#xff0c;初始化Consul相关配置时报错。 Consul service ids must not be empty, must start with a letter, end with a letter or digit, and have as interior characters only letters, digits, and hyphen: cbda-server-gateway:10.111.236.142:…

【Linux从青铜到王者】 基础IO

本篇重点&#xff1a;文件描述符&#xff0c;重定向&#xff0c;缓冲区&#xff0c;磁盘结构&#xff0c;文件系统&#xff0c;inode理解文件的增删查改&#xff0c;查找一个文件为什么一定要有路径&#xff0c;动静态库&#xff0c;有的时候为什么找不到库&#xff0c;动态库的…

BlackberryQ10 是可以安装 Android 4.3 应用的,Web UserAgent 版本信息

BlackberryQ10 是可以安装 Android 4.3 应用的 最近淘了个 Q10 手机&#xff0c;非常稀罕它&#xff0c;拿着手感一流。这么好的东西&#xff0c;就想给它装点东西&#xff0c;但目前所有的应用都已经抛弃这个安卓版本了。 一、开发环境介绍 BlackBerry Q10 的 安卓版本是 4.…

“从根到叶:深入理解排序数据结构“

一.排序的概念及引用 1.1排序的概念 排序是指将一组数据按照一定的规则重新排列的过程。排序的目的是为了使数据具有有序性&#xff0c;便于查找、插入、删除等操作&#xff0c;提高数据的组织和管理效率。 稳定性是指如果序列中存在相等元素&#xff0c;在排序完成后&#…

【Docker】免费使用的腾讯云容器镜像服务

需要云服务器等云产品来学习Linux可以移步/-->腾讯云<--/官网&#xff0c;轻量型云服务器低至112元/年&#xff0c;新用户首次下单享超低折扣。 目录 1、设置密码 2、登录实例&#xff08;sudo docker login xxxxxx&#xff09; 3、新建命名空间&#xff08;每个命名空…

CMake管理CUDA并使用cuSOLVER等

一、出现问题 我在使用官方案例的时候&#xff0c;使用VS2022CMake管理编译的时候出现如下的错误&#xff1a; 官方CMakeLists.txt&#xff1a; cmake_minimum_required(VERSION 3.9)set(ROUTINE bicgstab)project("${ROUTINE}_example"DESCRIPTION "GPU-Acce…

ChatGPT plus 的平替:9个可以联网的免费AI搜索引擎

ChatGPT plus 的平替&#xff1a;9个可以联网的免费AI搜索引擎。 由于ChatGPT 训练数据截止到2021年9月&#xff0c;在该时间点之后发生的事件&#xff0c;ChatGPT均无法给出答复。所以&#xff0c;大家现在都非常期待ChatGPT能够联网&#xff0c;访问实时的信息。 ChatGPT pl…

Python爬虫-报错requests.exceptions.SSLError: HTTPSConnectionPool

在学习python爬虫&#xff0c;在公司运行代码没有问题&#xff0c;但是下班回来把代码拉下来运行&#xff0c;却出现问题。 问题&#xff1a; requests.exceptions.SSLError: HTTPSConnectionPool(host‘campusgateway.51job.com’, port443): Max retries exceeded with url…

【NodeRed】常用节点记录(loop、PostgreSQL、子流程、日志)

【NodeRed】常用节点记录&#xff08;loop、PostgreSQL、子流程、日志&#xff09; 前言loopPostgreSQLnumber of rows per messagesql 几种写法SQL query templateDynamic SQL queriesParameterized queries 子流程状态节点怎么用&#xff1f; 日志 前言 在看了公司nodeRed 系…

虚拟机Ubuntu系统上安装Pycharm(详细图文教程)

这里写目录标题 一、安装包下载二、安装Pycharm三、启动并配置Pycharm3.1 启动3.2 创建桌面快捷键3.2.1 打开工程后添加桌面快捷键 3.3 安装汉化包 四、创建新的工程项目五、总结 一、安装包下载 Pycharm的官网地址&#xff1a;Pycharm官网 打开官网后的样子如下&#xff1a;…

零基础备考PMP,需要多长时间?

PMP是一门专业性很强的项目管理知识&#xff0c;考试当然是有一定的难度&#xff0c;但是也没有难到让你怀疑人生的程度。 如果你在学习PMP之前&#xff0c;已经有一些经验&#xff0c;那么备考一个半月基本上是没多大问题的&#xff0c;如果你是零基础小白&#xff0c;那么备…

CSP-J 2023 复赛第4题:旅游巴士

【题目来源】https://www.luogu.com.cn/problem/P9751https://www.acwing.com/problem/content/description/5313/【题目描述】 小 Z 打算在国庆假期期间搭乘旅游巴士去一处他向往已久的景点旅游。 旅游景点的地图共有 n 处地点&#xff0c;在这些地点之间连有 m 条道路。 其中…