Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Docker学习路线11:Docker命令行

Docker学习路线11:Docker命令行

原创
作者头像
小万哥
发布于 2023-07-25 15:07:45
发布于 2023-07-25 15:07:45
4860
举报
文章被收录于专栏:程序人生丶程序人生丶

Docker CLI (命令行界面) 是一个强大的工具,可让您与 Docker 容器、映像、卷和网络进行交互和管理。它为用户提供了广泛的命令,用于在其开发和生产工作流中创建、运行和管理 Docker 容器和其他 Docker 资源。

安装

要开始使用 Docker CLI,您需要在计算机上安装 Docker。您可以从 Docker 文档的官方安装指南中按照您所使用的操作系统进行安装。

基本命令

以下是一些基本的 Docker CLI 命令,供您熟悉:

  • docker run:从 Docker 映像创建并启动容器
  • docker container:列出正在运行的容器
  • docker image:列出系统中所有可用的映像
  • docker pull:从 Docker Hub 或其他注册表拉取映像
  • docker push:将映像推送到 Docker Hub 或其他注册表
  • docker build:从 Dockerfile 构建映像
  • docker exec:在正在运行的容器中运行命令
  • docker logs:显示容器的日志

Docker Run 选项

docker run 是 Docker CLI 中最重要的命令之一。您可以使用各种选项自定义容器的行为,例如:

  • d, --detach:在后台运行容器
  • e, --env:为容器设置环境变量
  • v, --volume:绑定挂载卷
  • p, --publish:将容器的端口发布到主机
  • name:为容器指定名称
  • restart:指定容器的重启策略
  • rm:容器退出时自动删除容器

Dockerfile

Dockerfile 是一个包含构建 Docker 映像的指令的脚本。您可以使用 Docker CLI 使用 Dockerfile 构建、更新和管理 Docker 映像。

以下是 Dockerfile 的一个简单示例:

代码语言:shell
AI代码解释
复制
# Set the base image to use
FROM alpine:3.7
# Update the system and install packages
RUN apk update && apk add curl
# Set the working directory
WORKDIR /app
# Copy the application file
COPY app.sh .
# Set the entry point
ENTRYPOINT ["./app.sh"]

要构建映像,请使用以下命令:

代码语言:shell
AI代码解释
复制
docker build -t my-image .

Docker Compose

Docker Compose 是一个 CLI 工具,用于使用 YAML 文件定义和管理多容器 Docker 应用程序。它与 Docker CLI 协作,提供了一种一致的方式来管理多个容器及其依赖项。

使用官方的安装指南安装 Docker Compose,然后您可以创建一个 docker-compose.yml 文件来定义和运行多容器应用程序:

代码语言:shell
AI代码解释
复制
version: '3'
services:  
web:    
image: webapp-image    
ports:      - "80:80"  
database:    
image: mysql    
environment:      - MYSQL_ROOT_PASSWORD=my-secret-pw

使用以下命令运行应用程序:

代码语言:shell
AI代码解释
复制
docker-compose up

总之,Docker CLI 是管理 Docker 容器和资源的强大而多才多艺的工具。一旦熟悉其命令和功能,您将能够轻松开发、维护和部署使用 Docker 的应用程序。

Docker镜像

Docker镜像是一种轻量级、独立、可执行的软件包,其包含了运行应用程序所需的所有组件。这些组件包括:依赖项、库、运行时、系统工具和代码等,以确保应用程序在不同的环境中可以保持一致地运行。

Docker镜像是使用Dockerfile进行构建和管理的。Dockerfile是一个包含了创建Docker镜像所需指令的脚本,提供了一个逐步设置应用程序环境的指南。

使用Docker镜像

Docker CLI提供了多个命令来管理和使用Docker镜像。其中一些重要的命令包括:

  • docker image ls:列出本地系统上所有可用的镜像。
  • docker build:从Dockerfile构建镜像。
  • docker image rm:删除一个或多个镜像。
  • docker pull:从注册表(如Docker Hub)将镜像拉到本地系统。
  • docker push:将镜像推送到仓库。

例如,要从Docker Hub拉取官方的Ubuntu镜像,可以运行以下命令:

代码语言:shell
AI代码解释
复制
docker pull ubuntu:latest

拉取镜像后,可以使用docker run命令创建和运行一个使用该镜像的容器:

代码语言:shell
AI代码解释
复制
docker run -it ubuntu:latest /bin/bash

这个命令将创建一个新的容器,并使用/bin/bash shell在容器内启动一个交互式会话。

共享镜像

Docker镜像可以使用容器注册表(如Docker Hub、Google Container Registry或Amazon Elastic Container Registry(ECR))共享和分发。一旦将您的镜像推送到注册表中,其他人就可以轻松地访问和使用它们。

要共享您的镜像,您首先需要使用适当的命名格式对其进行标记:

代码语言:shell
AI代码解释
复制
docker tag <image-id> <username>/<repository>:<tag>

然后,您可以使用以下命令将标记的镜像推送到注册表中:

代码语言:shell
AI代码解释
复制
docker push <username>/<repository>:<tag>

总之,Docker镜像是Docker生态系统中不可或缺的一部分,允许开发人员打包其应用程序、轻松地共享它们,并在不同的环境中确保一致性。通过理解Docker镜像和管理它们的命令,您可以利用容器化的力量,增强您的开发工作流程。在您的开发过程中使用Docker镜像可以大大提高开发效率,减少开发过程中的问题,让您能够更好地专注于应用程序的核心开发。

容器

容器可以被视为轻量级的、独立的可执行软件包,包括运行所需的所有东西,包括代码、运行时、库、环境变量和配置文件。容器将软件与其环境隔离开来,确保其在不同环境下工作一致。

为什么使用容器?

  • 可移植性:容器确保应用程序在不同平台上一致工作,无论是开发人员的笔记本电脑还是生产服务器。这消除了“它在我的机器上运行”的问题。
  • 效率:容器很轻量级,因为它们使用共享资源,没有完整操作系统的开销。这使得启动时间更快,减少资源使用。
  • 可扩展性:容器可以根据工作量轻松地进行缩放,因此非常适合分布式应用程序和微服务。
  • 一致性:容器使得开发人员、QA 和运维团队在整个应用程序生命周期中拥有一致的环境,从而加快了部署流程。
  • 安全性:容器提供了一定程度的隔离,使其与其他容器和底层主机系统隔离开来,有助于维护应用程序的安全性。

使用 Docker CLI 工作

Docker CLI 提供了多个命令,可帮助您创建、管理和与容器交互。一些常用命令包括:

  • docker run:用于创建和启动新容器。
  • docker container ls:列出运行中的容器。
  • docker container stop:停止运行中的容器。
  • docker container rm:删除已停止的容器。
  • docker exec:在运行中的容器中执行命令。
  • docker logs:获取容器的日志,有助于调试问题。

Docker卷

Docker卷是一种用于存储Docker容器生成和使用的数据的机制。它们允许您将数据与容器本身分开,从而轻松备份、迁移和管理持久性数据。

卷的重要性

Docker容器本质上是暂时的,这意味着它们可以轻松地停止、删除或替换。尽管这对应用程序开发和部署非常有利,但处理持久性数据时会带来挑战。这就是卷的作用。它们提供了一种将数据存储和管理与容器的生命周期分开的方法。

卷的类型

Docker中有三种类型的卷:

  • 主机卷:它们存储在主机机器的文件系统中,通常位于/var/lib/docker/volumes目录中。这些可以很容易地访问,但可能会带来可移植性或文件系统兼容性问题。
  • 匿名卷:这些是在运行容器时没有指定卷时自动生成的。它们的ID由Docker生成,也存储在主机机器的文件系统中。
  • 命名卷:与匿名卷类似,命名卷也存储在主机机器的文件系统中。但是,您可以提供自定义名称,这样在其他容器中引用或备份时更容易。

使用Docker CLI管理卷

Docker CLI提供了各种命令来管理卷:

  • docker volume create: 使用给定的名称创建新卷。
  • docker volume ls: 列出系统中的所有卷。
  • docker volume inspect: 提供有关特定卷的详细信息。
  • docker volume rm: 删除卷。
  • docker volume prune: 删除所有未使用的卷。

要在容器中使用卷,可以在docker run命令期间使用-v--volume标志。例如:

代码语言:shell
AI代码解释
复制
docker run -d --name my-container -v my-named-volume:/var/lib/data my-image

此命令使用“my-image”映像创建一个名为“my-container”的新容器,并在容器内部将“my-named-volume”卷挂载到/var/lib/data路径。

Docker 网络

Docker 网络提供了管理容器通信的重要方法。它允许容器使用各种网络驱动程序相互通信并与主机机器通信。通过理解和利用不同类型的网络驱动程序,您可以设计容器网络以适应特定的场景或应用程序需求。

网络驱动程序

Docker 中有几个可用的网络驱动程序。这里,我们将介绍四个最常见的驱动程序:

  • bridge:容器的默认网络驱动程序。它创建了一个私有网络,容器可以相互通信并与主机机器通信。在此网络上的容器可以通过主机网络访问外部资源。
  • host:该驱动程序取消了网络隔离并允许容器共享主机的网络。在网络性能至关重要的情况下,它非常有用,因为它最小化了容器网络的开销。
  • none:该网络驱动程序禁用容器网络。使用此驱动程序的容器在没有任何网络访问的隔离环境下运行。
  • overlay:该网络驱动程序使部署在不同主机上的容器能够相互通信。它专为 Docker Swarm 设计,并且非常适合多主机或基于集群的容器部署。

管理 Docker 网络

Docker CLI 提供了各种命令来管理网络。以下是一些有用的命令:

  • 列出所有网络:docker network ls
  • 检查网络:docker network inspect <network_name>
  • 创建新网络:docker network create --driver <driver_type> <network_name>
  • 将容器连接到网络:docker network connect <network_name> <container_name>
  • 将容器与网络断开连接:docker network disconnect <network_name> <container_name>
  • 删除网络:docker network rm <network_name>

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Docker:让应用程序轻松移植到任何地方的利器
容器是一种轻量级的独立可执行包,可以包括应用程序所需的所有内容(如代码、库、环境变量和系统工具),并在任何地方进行部署。与虚拟机不同,它们不需要完整的操作系统,因此更加轻便、快速和易于移植。
一只
2024/06/26
1850
Docker小白的福音:50条Docker命令清单,干就完了!
Docker可以让开发人员、运维人员更容易使用容器创建、部署和运行应用程序。掌握一些必备的Docker命令对于使用Docker的工程师非常重要,那么今天笔者给大家整理了一份Docker的命令备忘单,希望大家可以好好保存,在使用的时候可以拿出来查阅使用。
网络技术联盟站
2022/07/21
1.6K0
Docker小白的福音:50条Docker命令清单,干就完了!
我看谁还敢说不懂Docker
Docker引领着容器生态,但也是容器生态的一部分,在了解Docker之前需要先了解以下容器技术。
MCNU云原生
2023/03/17
5910
我看谁还敢说不懂Docker
Docker入门学习
Docker是一个开源的容器化平台,可以将应用程序及其依赖以容器的形式封装,使其可以在任何环境中运行。Docker可以改善开发流程、提高应用程序的可移植性、简化系统配置、更易于维护等等。
半月无霜
2024/07/27
2000
Docker容器常用命令大全:熟练掌握使容器优化更加高效
本文介绍了Docker容器常用命令,帮助读者快速上手使用Docker进行应用容器化管理。通过学习本文,读者将了解到如何创建、启动、停止、删除容器,以及如何管理容器网络和数据卷等关键操作。同时,本文还提供了一些实用的技巧和注意事项,帮助读者更好地运用Docker进行开发和部署。
猫头虎
2024/04/08
3440
Docker容器常用命令大全:熟练掌握使容器优化更加高效
Docker 基础与实践
作为一个后端开发,我刚开始工作的时候其实主要都是在本地调试的,并没有怎么了解过 Docker 的相关使用。直到后来开始接触较为复杂的底层链开发,因为链或其相关工具的依赖关系比较复杂,也涉及很多版本冲突问题,在本机或服务器上每次需要配置复杂的环境,且每次重启后很多服务与配置都需要重新部署,繁琐且容易出现一些莫名的跨平台错误。
pseudoyu
2023/04/11
9390
【docker】入门
Docker 是一个用于开发、交付和运行应用程序的开放平台。 Docker 使您能够将应用程序与基础架构分开,以便 您可以快速交付软件。使用 Docker,您可以管理您的基础架构 以与管理应用程序相同的方式。通过利用 Docker 的 快速传送、测试和部署代码的方法,您可以 显著减少编写代码和在生产环境中运行代码之间的延迟。 Docker 提供了在松散隔离中打包和运行应用程序的能力 称为容器的环境。隔离和安全性允许您运行许多 容器同时在给定主机上。容器重量轻,包含 运行应用程序所需的一切,因此您无需依赖 当前安装在主机上。您可以在工作时轻松共享容器, 并确保与您共享的每个人都获得在 同样的方式。
20岁爱吃必胜客
2023/03/06
1.4K0
【docker】入门
使用docker来编排Web应用
使用docker可以轻松构建一个项目并运行,然而在真实的使用场景中,我们的项目并非是单一的,而是多个项目相互依赖组成一个web应用。
神奇的程序员
2023/11/20
5030
使用docker来编排Web应用
Docker学习路线4:Docker基础知识
Docker是一个平台,简化了在轻量、可移植的容器中构建、打包和部署应用程序的过程。在本节中,我们将介绍Docker的基础知识、其组件以及您需要开始使用的关键命令。
小万哥
2023/07/13
1600
Docker学习路线4:Docker基础知识
Docker有哪些常见命令?什么是Docker数据卷?
哈喽,大家好呀!这里是码农后端。上一篇我们介绍了Docker的安装以及腾讯云镜像加速源的配置。本篇将带你学习Docker的常见命令、数据卷及自定义镜像等相关知识。
reload
2024/04/26
3432
Docker有哪些常见命令?什么是Docker数据卷?
Docker常用命令|备忘单
Docker 是一个用于开发、传送和运行应用程序的开放平台。Docker 使您能够将应用程序与基础设施分开,以便您可以快速交付软件。使用 Docker,您可以像管理应用程序一样管理基础设施。通过利用 Docker 的快速交付、测试和部署代码的方法,您可以显着减少编写代码和在生产中运行代码之间的延迟。在这篇文章中,我将提到我们需要或大多数用例的 docker 命令。
游魂
2021/11/24
5440
15 Docker 总结
Lemon黄
2023/12/15
1820
15 Docker 总结
《Docker极简教程》--Docker容器--Docker容器的创建和使用
获取镜像:首先,需要从Docker Hub或其他镜像仓库获取所需的镜像。可以使用docker pull命令来获取镜像,语法如下:
喵叔
2024/05/24
11.5K0
Docker
Docker是一种开源的应用容器引擎,它基于Go语言并遵从Apache2.0协议开源。Docker的主要目标是实现轻量级的操作系统虚拟化,以便隔离进程和资源,提供一致的运行环境。Docker的基本组件包括镜像(Image)、容器(Container)、仓库(Repository)。
织幻妖
2023/11/15
3350
Docker
Docker 总结 ubuntu
假设路径分隔符为/,第一个参数为SRC_PATH,第二个参数为DEST_PATH,行为如下:
yiyun
2022/04/01
2.3K0
Docker 总结  ubuntu
【Docker】Docker环境配置与常用命令
Docker 是一个开源的容器化平台,用于构建、发布和运行应用程序。通过使用容器技术,Docker 允许开发人员将应用程序及其依赖项打包为一个独立的、可移植的容器,以确保应用程序在不同环境中具有一致的运行行为。
DevFrank
2024/07/24
8700
【Docker】Docker环境配置与常用命令
Docker与Docker Compose入门:释放你的应用部署的威力
嘿,大家好!今天给大家介绍一项强大而有趣的技能,那就是使用 Docker 和 Docker Compose 来释放你的应用部署的威力!无论你是一名开发人员还是系统管理员,掌握这个技能都将为你的工作带来巨大的好处。
wayn
2024/01/18
9360
Docker与Docker Compose入门:释放你的应用部署的威力
一文带你了解 Docker 容器生命周期
在本文中,将介绍 Docker 的基本概念,包括容器和镜像的定义,以及 Docker 容器生命周期的各个阶段。我们还将讨论 Docker Hub 和 Docker Registry 的作用。
网络技术联盟站
2023/07/22
1K0
一文带你了解 Docker 容器生命周期
2.Docker学习之基础使用
Data Management,在使用Docker时候必然会在容器内产生数据,或者需要将容器内的数据进行备份,甚至多个容器之间进行数据共享,这时数据管理变得尤为重要;
全栈工程师修炼指南
2022/09/28
2.2K0
2.Docker学习之基础使用
n1.Docker命令参数一览表
描述:利用 docker info 命令 Docker Client && Docker Server 信息一览:
全栈工程师修炼指南
2020/10/23
2.2K0
n1.Docker命令参数一览表
相关推荐
Docker:让应用程序轻松移植到任何地方的利器
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档