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

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

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

文章目录

    • 什么是镜像和容器?
    • 提醒
    • [0. 安装 Docker](#0. 安装 Docker)
    • [1. 搜索镜像 (docker search)](#1. 搜索镜像 (docker search))
    • [2. 拉取镜像(docker pull)与列出本地镜像(docker images)](#2. 拉取镜像(docker pull)与列出本地镜像(docker images))
    • [3. 创建容器(docker create)](#3. 创建容器(docker create))
    • [4. 开启容器(docker start)与启动容器(docker run)](#4. 开启容器(docker start)与启动容器(docker run))
    • [5. 停止容器(docker stop)](#5. 停止容器(docker stop))
    • [6. 删除容器(docker rm)](#6. 删除容器(docker rm))
    • [7. 其他常用命令](#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,执行以下命令即可

bash 复制代码
docker search nginx

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

bash 复制代码
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 的镜像:

bash 复制代码
docker pull nginx

等待下载完成即可。

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

bash 复制代码
docker images

打印结果如下:

bash 复制代码
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 的容器的示例:

bash 复制代码
docker create --name my_nginx nginx

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

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

bash 复制代码
docker start my_nginx

还有一个命令是 docker run,用于不同的场景:

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

bash 复制代码
docker run ubuntu /bin/bash

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

(3) docker start 命令用于启动一个已经存在的容器。如果使用这个命令,我们必须事先知道这个容器的ID ,或者这个容器的名称 ,我们可以使用 docker ps 找到该容器的信息。

例如,当你停止了一个运行中的容器后,可以使用 docker start 命令重新启动该容器:

bash 复制代码
docker start my_container

5. 停止容器(docker stop)

使用 docker stop 命令停止容器:

bash 复制代码
docker stop my_nginx

6. 删除容器(docker rm)

使用 docker rm 命令删除容器:

bash 复制代码
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并掌握常用的基本操作。

相关推荐
Hacker_Nightrain38 分钟前
linux 网络安全不完全笔记
linux·笔记·web安全
一入程序无退路42 分钟前
c语言传参数路径太长,导致无法获取参数
linux·c语言·数据库
打鱼又晒网1 小时前
Linux网络 | 网络计算器客户端实现与Json的安装以及使用
linux·c++·网络协议·计算机网络
朝九晚五ฺ1 小时前
【Linux探索学习】第二十三弹——理解文件系统:认识硬件、探索文件在硬件上的存储问题
linux·运维·学习
匹马夕阳1 小时前
容器化平台Docker初识
运维·docker·容器
-指短琴长-2 小时前
Linux从0到1——线程同步和互斥【互斥量/条件变量/信号量/PC模型】
linux·运维·服务器
梦呓01042 小时前
platform_msi使用
linux
A charmer2 小时前
畅游 Linux 开发天地:yum 与 vim 详解
linux·运维·服务器
梦想画家2 小时前
Ubuntu安装Apache Airflow详细指南
ubuntu·数据集成·airflow
小吴-斌2 小时前
Ubuntu 中安装 RabbitMQ 教程
linux·ubuntu·rabbitmq