首页 > 其他分享 >Docker简介和Docker常见命令

Docker简介和Docker常见命令

时间:2024-08-15 10:58:29浏览次数:12  
标签:容器 简介 常见 使用 镜像 Docker docker 日志

目录

1. Docker 简介

1.1 Docker 的核心概念

1.2 Docker 的优势

1.3 Docker 工作流程

2. 常见命令

2.1 基本命令

2.2 镜像操作

2.3 容器操作

2.4 网络操作

2.5 卷操作

2.6 日志和监控

2.7 清理命令

3. 注意事项和最佳实践

3.1 镜像操作

3.2 容器操作

3.3 网络操作

3.4 卷操作

3.5 日志和监控

3.6 清理命令


1. Docker 简介

        Docker 是一种开源的容器化平台,它使开发者能够自动化地部署、管理和运行应用程序。Docker 使用操作系统级虚拟化技术,使得应用程序和它们的依赖项可以打包成一个轻量级、可移植的容器,并在任何环境中运行。

1.1 Docker 的核心概念

镜像(Image):

  • Docker 镜像是一个包含应用程序及其所有依赖项的只读模板。镜像可以用来创建 Docker 容器。
  • 镜像通常是基于另一个镜像构建的,并通过分层文件系统来实现。每一层都包含了镜像的一部分,最后一层是应用程序本身。

容器(Container):

  • 容器是镜像的运行实例。它们是轻量级的、独立的,运行时与主机系统隔离。
  • 容器可以启动、停止、移动,并且可以随时销毁,而不会影响主机系统。

Dockerfile:

  • Dockerfile 是一个文本文件,包含了一系列指令,用来告诉 Docker 如何构建镜像。
  • 每个指令都对应镜像的一层,并且每次修改 Dockerfile 都会创建新的镜像层。

Docker Hub:

  • Docker Hub 是一个云端的镜像存储库,允许用户存储和共享 Docker 镜像。用户可以从 Docker Hub 拉取公共镜像,或推送自己的镜像。

1.2 Docker 的优势

  • 一致的运行环境: Docker 提供了一致的开发、测试和生产环境,确保应用程序在不同环境中运行时没有差异。
  • 轻量级: Docker 容器与传统的虚拟机相比更加轻量级,占用资源更少,启动速度更快。
  • 依赖管理: Docker 容器包含应用程序的所有依赖项,避免了“在我的机器上可以工作”的问题。
  • 便捷的版本控制: Docker 镜像是分层构建的,可以很方便地进行版本控制和回滚。
  • 快速部署: Docker 镜像可以快速分发和部署,缩短了从开发到生产的时间。

1.3 Docker 工作流程

  1. 编写 Dockerfile: 开发者编写一个 Dockerfile 来定义应用程序的环境和依赖项。
  2. 构建镜像: 使用 docker build 命令将 Dockerfile 构建成一个镜像。
  3. 运行容器: 使用 docker run 命令从镜像创建并启动一个容器。
  4. 管理容器: 使用各种 Docker 命令(如 docker ps, docker stop, docker rm 等)来管理容器的生命周期。
  5. 发布和分享: 使用 docker push 命令将镜像推送到 Docker Hub,或者从 Docker Hub 拉取其他镜像。

2. 常见命令

最常用的就2、3。

2.1 基本命令

docker version查看 Docker 的版本信息。

docker info:显示有关 Docker 系统的详细信息,包括容器、镜像和存储驱动等信息。

docker help:显示 Docker 命令的帮助信息。

2.2 镜像操作

docker images:列出本地存储的所有镜像。

docker pull [镜像名]:从 Docker Hub 或其他镜像仓库中拉取指定镜像。

  • 注意: 从可信的源拉取镜像,以避免安全风险。定期更新镜像以获取最新的安全修复和功能改进。

docker build -t [镜像名]:[标签] [Dockerfile 路径]:使用 Dockerfile 构建一个新的镜像。

  • 注意: Dockerfile 中的命令尽量保持简单和明确,以减少镜像层的数量和大小。使用多阶段构建来减少最终镜像的大小。

docker rmi [镜像名或ID]:删除指定的镜像。

docker tag [镜像名]:[标签] [新镜像名]:[新标签]:为现有镜像打标签。

2.3 容器操作

docker ps:列出当前正在运行的所有容器(可以看到下面的容器名和id)。

docker ps -a:列出所有容器,包括未运行的(可以看到下面的容器名和id)。

docker run [选项] [镜像名]:运行一个镜像,生成一个容器。

常用选项:

  • -d:后台运行容器,并返回容器 ID。注意: 后台运行容器时,确保有日志管理方案以便排查问题。
  • -it:以交互模式运行容器,并分配一个伪终端。
  • --name [容器名]:为容器指定一个名称。注意: 使用有意义的名称便于管理和调试。
  • -p [主机端口]:[容器端口]:端口映射。注意: 映射端口时,注意主机和容器的端口冲突问题。
  • -v [主机目录]:[容器目录]:挂载主机目录到容器中。注意: 确保正确的读写权限,避免数据丢失或权限问题。

docker stop [容器名或ID]:停止运行中的容器。

  • 注意: 停止容器时,最好先确保容器内的进程已妥善关闭,以防止数据损坏或丢失。

docker start [容器名或ID]:启动已停止的容器。

docker restart [容器名或ID]:重启容器。

docker rm [容器名或ID]:删除容器。

  • 注意: 删除容器时,请确保容器中的重要数据已备份或持久化,避免数据丢失。可以结合 docker stopdocker rm 使用 docker rm -f 强制删除正在运行的容器。

docker exec -it [容器名或ID] /bin/bash:进入正在运行的容器的终端。

2.4 网络操作

docker network ls:列出所有的网络。

docker network create [网络名]:创建一个新的网络。

  • 注意: 创建自定义网络时,可以选择适当的驱动(如 bridge, overlay),以满足不同的应用场景需求。确保网络配置与主机网络环境不冲突。

docker network rm [网络名]:删除一个网络。

docker network inspect [网络名]:查看网络的详细信息。

2.5 卷操作

docker volume ls:列出所有卷。

docker volume create [卷名]:创建一个新的卷。

  • 注意: 创建卷时,可以指定不同的驱动程序和选项,以满足存储需求。注意卷的生命周期管理,避免产生未使用的孤立卷。

docker volume rm [卷名]:删除一个卷。

  • 注意: 删除卷时,请确保卷中的数据已备份或不再需要,避免数据丢失。

docker volume inspect [卷名]:查看卷的详细信息。

2.6 日志和监控

docker logs [容器名或ID]:查看容器的日志。

  • 注意: 查看日志时,可以使用 --tail-f 选项分别查看最近的日志和实时日志,以便于调试。日志文件可能会很大,建议配置日志驱动和日志轮转策略。

docker stats [容器名或ID]:显示容器的实时资源使用统计信息。

  • 注意: 实时监控容器资源使用情况时,可以结合其他监控工具(如 Prometheus, Grafana)进行更全面的监控和告警。

2.7 清理命令

docker system prune:清理未使用的数据,包括未使用的镜像、挂起的容器、未使用的卷和网络。

  • 注意: 使用清理命令时,要特别注意会删除未使用的数据。建议在生产环境中使用前仔细检查,以免误删重要资源。可以使用 --volumes 选项一并删除未使用的卷,但需谨慎操作。

docker image prune:删除未使用的镜像。

docker container prune:删除所有停止的容器。

docker volume prune:删除未使用的卷。

docker network prune:删除未使用的网络。

3. 注意事项和最佳实践

3.1 镜像操作

  • 从可信的源拉取镜像,以避免安全风险。
  • 定期更新镜像以获取最新的安全修复和功能改进。
  • Dockerfile 中的命令尽量保持简单和明确,以减少镜像层的数量和大小。
  • 使用多阶段构建来减少最终镜像的大小。

3.2 容器操作

  • 后台运行容器时,确保有日志管理方案以便排查问题。
  • 使用有意义的名称便于管理和调试。
  • 映射端口时,注意主机和容器的端口冲突问题。
  • 挂载卷时,确保正确的读写权限,避免数据丢失或权限问题。
  • 停止容器时,最好先确保容器内的进程已妥善关闭,以防止数据损坏或丢失。
  • 删除容器时,请确保容器中的重要数据已备份或持久化,避免数据丢失。
  • 强制删除正在运行的容器时需谨慎操作。

3.3 网络操作

  • 创建自定义网络时,可以选择适当的驱动,以满足不同的应用场景需求。
  • 确保网络配置与主机网络环境不冲突。

3.4 卷操作

  • 创建卷时,可以指定不同的驱动程序和选项,以满足存储需求。
  • 注意卷的生命周期管理,避免产生未使用的孤立卷。
  • 删除卷时,请确保卷中的数据已备份或不再需要,避免数据丢失。

3.5 日志和监控

  • 查看日志时,可以使用 --tail-f 选项分别查看最近的日志和实时日志,以便于调试。
  • 日志文件可能会很大,建议配置日志驱动和日志轮转策略。
  • 实时监控容器资源使用情况时,可以结合其他监控工具进行更全面的监控和告警。

3.6 清理命令

  • 使用清理命令时,要特别注意会删除未使用的数据。
  • 在生产环境中使用前仔细检查,以免误删重要资源。
  • 使用 --volumes 选项一并删除未使用的卷时需谨慎操作。

标签:容器,简介,常见,使用,镜像,Docker,docker,日志
From: https://blog.csdn.net/FHY26828/article/details/141005315

相关文章

  • docker compse简介与安装
    目录1.DockerCompose简介2.DockerCompose安装2.1在Ubuntu上安装DockerCompose2.1.1通过apt安装2.1.2使用官方脚本安装最新版本2.2在CentOS上安装DockerCompose2.2.2使用官方脚本安装最新版本2.2.3使用pip安装2.3在openEuler上安装Docker......
  • docker修改镜像地址后不生效
    前面已经完成镜像源的更换编辑Docker配置文件/etc/docker/daemon.json{"registry-mirrors":["https://docker.fxxk.dedyn.io/"]}重启dockersystemctldaemon-reloadsystemctlrestartdocker解决方法下面是解决docker镜像源不起作用的问题的具体步骤:步骤......
  • docker-compose 一键部署多个微服务
    如果部署微服务项目的话,多个服务需要启动,如果用dockerrun一个一个启动效率实在是太慢了可以用docker-compose一键启动多个服务第一步:服务打成jar之后每个服务一个文件夹并把Dockerfile加进去第二步:编写docker-compose.yml文件version:'3.8'services:sdss-bas......
  • 问题--Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the
     上班后发现服务不在线,docker也无法启动,检查daemon.json配置文件出问题了 。 检查:#查看docker内全部进程dockerps提示错误:CannotconnecttotheDockerdaemonatunix:///var/run/docker.sock.TSthedockerdaemonrunning? #查看docker状态systemctls......
  • Dockerfile
    使用Dockerfile可以允许用户创建自定义的镜像。Dockerfile基本结构Dockerfile由一行行命令语句组成,并且支持以#开头的注释行。一般的,Dockerfile分为四部分:基础镜像信息、维护者信息、镜像操作指令和容器启动时执行指令。例如#Thisdockerfileusestheubunt......
  • Java数组篇[10]:数组的常见应用场景
    哈喽,各位小伙伴们,你们好呀,我是喵手。运营社区:C站/掘金/腾讯云/阿里云/华为云/51CTO;欢迎大家常来逛逛  今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一个人虽可以走的更快,但一群人可以走的更远。  我是一名后端开发爱好者......
  • 深度学习理解非线性因素,知道常见激活函数
    网络非线性因素的理解激活函数用于对每层的输出数据进行变换,进而为整个网络结构结构注入了非线性因素。此时,神经网络就可以拟合各种曲线。如果不使用激活函数,整个网络虽然看起来复杂,其本质还相当于一种线性模型,如下公式所示:另外通过图像可视化的形式理解:我们发现增......
  • 一键自动化安装Docker
    一、Docker背景在我们安装Docker时候需要配置网络类型flannel+etcd,在多台服务器中脚本可以大大解决安装配置速度我们这里的Docker版本以docker-20.10.24为例;根据个人需求可更换二、一键自提:链接:https://pan.baidu.com/s/1BT5_r0WUX5nhRRNLvSafiw?pwd=j6k5提取码:j6k5三、脚......
  • Superset Docker-Compose部署
    bi系统是一类旨在帮助企业和组织分析、可视化和理解其业务数据的软件工具之前了解过商业的阿里quickbi,腾讯bi,开源的话用superset,据了解新老公司不少会调研supersethttps://github.com/apache/superset/releases/tag/4.0.2这里我使用了最新的包,经过测试发现一年前的镜像更新到......
  • 【VCG学习篇之前置】最清晰的VCGLib简介与环境配置(Windows)
    写于2024/08/13目录一、什么是VCG1.背景2.功能3.特性4.应用二、环境配置1.下载VCGLib2.项目创建与属性配置(1)项目创建(2)属性配置(3)错误解决3.样例测试三、文件说明无论在学什么之前,首先要了解你要去探索的东西它的一些特性,用途,把它的骨架画好,再基于这个骨架去逐步完善和修改。本......