【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并掌握常用的基本操作。

相关推荐
什么半岛铁盒几秒前
【Linux系统】Linux环境变量:系统配置的隐形指挥官
linux
Lw老王要学习33 分钟前
Linux容器篇、第一章_02Rocky9.5 系统下 Docker 的持久化操作与 Dockerfile 指令详解
linux·运维·docker·容器·云计算
橙子小哥的代码世界1 小时前
【大模型RAG】Docker 一键部署 Milvus 完整攻略
linux·docker·大模型·milvus·向量数据库·rag
倔强的石头1062 小时前
【Linux指南】用户与系统基础操作
linux·运维·服务器
云上艺旅2 小时前
centos升级内核
linux·运维·centos
kaikaile19952 小时前
centos开启samba服务
linux·运维·centos
云上艺旅2 小时前
centos部署k8s v1.33版本
linux·云原生·kubernetes·centos
好多知识都想学2 小时前
Centos 7 服务器部署多网站
linux·服务器·centos
好多知识都想学2 小时前
centos 7 部署awstats 网站访问检测
linux·运维·centos
颜淡慕潇2 小时前
【K8S系列】Kubernetes 中 Pod(Java服务)启动缓慢的深度分析与解决方案
容器·kubernetes·pod