Docker 容器管理和镜像管理基础知识(二)

Docker 容器管理和镜像管理

容器管理

docker create 命令用于在 Docker 中创建一个新的容器,但不会自动启动它。这个命令会返回容器的 ID,可以使用它来
进一步操作容器,这也是与 docker run 命令的一个区别

以下是 docker create 的基本用法:

docker create [OPTIONS] IMAGE [COMMAND] [ARG...]
  • OPTIONS:可以使用一系列选项来配置容器的行为,如端口映射、数据卷挂载、环境变量设置等。
  • IMAGE:指定要使用的镜像,可以是本地镜像的名称或远程仓库中的镜像。
  • COMMAND:可选参数,指定容器启动时要执行的命令。
  • ARG...:可选参数,传递给容器启动命令的参数。

以下是一些常用的选项:

  • -i, --interactive:打开容器的标准输入,允许交互操作。
  • -t, --tty:为容器分配一个伪终端。
  • --name CONTAINER_NAME:为容器指定一个自定义的名称。
  • -e, --env KEY=VALUE:设置容器的环境变量。
  • -v, --volume SOURCE:DEST:挂载主机上的目录或数据卷到容器内部。
  • -p, --publish HOST_PORT:CONTAINER_PORT:将容器的端口映射到主机的端口上。

以下是一个示例:


查看镜像
docker images 从镜像 my-ubuntu tag:latest 创建一个容器 my-container2
docker create -it --name my-container2 -p 8080:80 my-ubuntu:latest启动容器
docker start my-container2查看容器是否启动
docker ps

docker rundocker create 区别

docker create:

  • docker create 命令用于在 Docker 中创建一个新的容器,但不会自动启动它。
  • 创建容器后,会返回容器的 ID,可以使用该 ID 进一步操作容器,如启动、停止、删除等。
  • docker create 命令通常与 docker start 命令一起使用,以分别创建和启动容器。

docker run:

  • docker run 命令用于创建并立即启动一个新的容器。
  • 它相当于 docker createdocker start 命令的组合,可以在一步中创建和启动容器。
  • docker run 命令提供了更便捷的方式来创建和启动容器,适用于大多数常见的容器使用场景。

为什么会设计两个命令呢?

  • 设计上的灵活性:Docker 设计了两个命令,以便在不同的场景下提供更多的灵活性。docker create 提供了更细粒度
    的控制,允许在创建容器后进行进一步的配置和准备工作,然后手动启动容器。而 docker run 则提供了一种简化的方
    式,可以在一步中创建和启动容器。

  • 工作流程的不同:docker create 适用于需要在容器启动之前执行额外操作的场景,例如在容器启动之前挂载数据卷、
    设置环境变量等。而 docker run 适用于直接启动容器并运行应用程序的场景,它通常用于常见的容器使用场景。

总之,docker createdocker run 提供了不同的方式来创建和启动容器,可以根据具体的需求和工作流程选择合适的命令。
对于简单的容器启动,docker run 是更常用和方便的选择。而对于需要更多控制和定制的场景,可以使用 docker create
docker start 命令来分别创建和启动容器。

  • docker cp 命令用于在 Docker 容器和主机之间复制文件或目录。
docker cp 命令的基本语法:docker cp <source> <destination><source>:指定要复制的文件或目录的路径。可以是容器内的路径或主机上的路径。
<destination>:指定目标位置的路径。可以是容器内的路径或主机上的路径。从容器复制文件到主机:
docker cp <container_name_or_id>:<source_path> <destination_path>从名为 mycontainer 的容器复制 /app/file.txt 文件到主机的 /tmp 目录:
eg: docker cp mycontainer:/app/file.txt /tmp/file.txt从主机复制文件到容器:
docker cp <source_path> <container_name_or_id>:<destination_path>将主机上的 /tmp/file.txt 文件复制到名为 mycontainer 的容器的 /app 目录:
eg:docker cp /tmp/file.txt mycontainer:/app/file.txt注意事项:当复制文件到容器时,如果目标路径不存在,Docker 会自动创建目标路径。
当复制文件到容器时,目标路径不能是符号链接。
当复制目录时,目录本身和其中的内容都会被复制。
  • docker 端口映射
当使用 docker run 命令时,通过 -p 或 --publish 参数可以设置容器的端口映射,将容器内部的端口映射到主机的端口上。docker run -d -p 8888:8080 --name mycontainer your-image-d:以后台模式运行容器。
-p 8888:8080:将主机的 8888 端口映射到容器的 8080 端口上。
--name mycontainer:为容器指定一个名称。
your-image:要运行的容器镜像。现在,可以通过在浏览器中访问 http://localhost:8888 来访问容器内部的 Web 应用程序。流量将被重定向到容器的 8080 端口。
  • docker 的网络模式
在 Docker 中,有几种常见的网络模式可供选择,包括默认的桥接网络、主机网络和覆盖网络。以下是这些网络模式的特点、优缺
点和适用场景的概述:桥接网络(Bridge Network):特点:默认的网络模式,每个容器分配一个独立的 IP 地址,可以通过容器名称进行通信。
优点:隔离性好,容器可以在同一主机的不同网络命名空间中运行。
缺点:不适用于多主机环境,容器之间需要通过端口映射才能访问。
适用场景:单主机上多个容器之间需要相互通信的情况,比如微服务架构。
主机网络(Host Network):特点:容器与主机共享网络命名空间,直接使用主机的 IP 地址和端口。
优点:网络性能好,容器无需通过端口映射即可访问主机网络。
缺点:缺乏隔离性,容器与主机共享网络栈。
适用场景:对网络性能要求较高、需要容器与主机共享网络的情况,比如网络工具、监控工具等。
覆盖网络(Overlay Network):特点:使用 Docker Swarm 模式创建的多主机集群环境下的网络模式,跨主机通信使用 Overlay 网络。
优点:容器可以在多个主机上通过 Overlay 网络进行通信。
缺点:配置和管理复杂,需要使用 Swarm 模式。
适用场景:在多主机环境下,需要容器之间跨主机通信的情况,比如横向扩展应用程序。docker run -d --network=bridge --name mycontainer your-image使用 --network=bridge 参数来指定容器使用默认的桥接网络模式。你可以将 bridge 替换为其他网络模式,如 host 或 overlay
  • docekr 资源限定
在 Docker 中,你可以为容器分配资源限制,如 CPU 和内存限制。通过 --cpus 参数设置容器的 CPU 限制。例如,设置容器的 CPU 限制为 0.5:
docker run -d --cpus=0.5 --name mycontainer your-image通过 --memory 参数设置容器的内存限制。例如,设置容器的内存限制为 512MB:
docker run -d --memory=512m --name mycontainer your-image
  • docker stats 容器资源监控
使用 docker stats 命令可以实时监控正在运行的容器的资源使用情况:
docker stats mycontainerdocker stats 命令将显示容器的 CPU 使用率、内存使用量、网络 I/O、磁盘 I/O 等信息,并以实时更新的方式显示。可以使用 --format 参数来自定义输出格式,以满足特定的需求。例如,只显示 CPU 使用率和内存使用量:
docker stats --format "table {{.Container}}\t{{.CPUPerc}}\t{{.MemUsage}}"通过设置容器的资源限制和使用 docker stats 命令,你可以有效地管理和监控容器的资源使用情况
  • docker 镜像仓库
搜索镜像:在 Docker Hub 或其他镜像仓库的网站上,使用搜索功能来查找你需要的镜像。可以通过关键字、镜像名称或镜像作者来进行搜索。
在搜索结果中,可以查看镜像的描述、标签和其他相关信息。
拉取镜像:使用 docker pull 命令从镜像仓库中拉取镜像到本地。命令格式为:docker pull <镜像名称>:<标签>。
默认情况下,如果未指定标签,默认会拉取 latest 标签的镜像。
例如,要拉取 nginx 镜像的 latest 版本,可以执行:docker pull nginx:latest。
推送镜像:如果你开发了自己的镜像,并希望将其推送到镜像仓库,需要先登录到镜像仓库。
使用 docker login 命令登录到 Docker Hub 或其他镜像仓库。需要提供用户名、密码和仓库地址。
登录成功后,可以使用 docker push 命令将本地的镜像推送到镜像仓库。命令格式为:docker push <镜像名称>:<标签>。
镜像标签:镜像标签用于区分不同版本或变体的镜像。一个镜像可以有多个标签。
通常,latest 标签表示最新的版本,但最好使用特定的版本标签来确保镜像的可重复性和稳定性。
在拉取或推送镜像时,可以通过指定标签来选择特定版本的镜像。
例如,要拉取 nginx 镜像的 1.21.3 版本,可以执行:docker pull nginx:1.21.3。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/605785.shtml

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

相关文章

Kotlin 作用域函数

作用域函数&#xff08;Scope Functions&#xff09; 函数参数返回值说明letitlambda result非空对象执行代码块applythis上下文对象用于对象配置操作alsoit上下问对象执行额外操作runthislambda result用于对象配置和计算结果withthislambda result非扩展函数&#xff0c;配置…

STL标准库与泛型编程(侯捷)笔记3

STL标准库与泛型编程&#xff08;侯捷&#xff09; 本文是学习笔记&#xff0c;仅供个人学习使用。如有侵权&#xff0c;请联系删除。 参考链接 Youbute: 侯捷-STL标准库与泛型编程 B站: 侯捷 - STL Github:STL源码剖析中源码 https://github.com/SilverMaple/STLSourceCo…

中国式浪漫:古人对万物的雅称

古人对万物的称呼都是美而浪漫&#xff0c;在诗词中&#xff0c;女子被称为红妆、佳人、婵娟、碧玉、红颜。雪也叫作琼芳、玉絮、六花、玉鸾&#xff1b;在诗词中&#xff0c;每一缕风&#xff0c;每一片雪&#xff0c;都有一个雅致的名字。所谓的诗情画意&#xff0c;便是用普…

基于深度学习的停车位关键点检测系统(代码+原理)

摘要&#xff1a; DMPR-PS是一种基于深度学习的停车位检测系统&#xff0c;旨在实时监测和识别停车场中的停车位。该系统利用图像处理和分析技术&#xff0c;通过摄像头获取停车场的实时图像&#xff0c;并自动检测停车位的位置和状态。本文详细介绍了DMPR-PS系统的算法原理、…

最短路径问题相关算法、原理及适用场景

这里写目录标题 一、最短路径算法、原理及适用场景深度优先搜索算法/广度优先搜索算法Floyd算法&#xff08;Floyd-Warshell算法&#xff09;Dijkstra算法A*算法贝尔曼福特算法&#xff08;Bellman-Ford Algorithm&#xff09;SPFA算法&#xff08;Shortest Path Faster Algori…

FPGA高端项目:纯verilog的 25G-UDP 高速协议栈,提供工程源码和技术支持

目录 1、前言免责声明 2、相关方案推荐我这里已有的以太网方案本协议栈的 1G-UDP版本本协议栈的 10G-UDP版本1G 千兆网 TCP-->服务器 方案1G 千兆网 TCP-->客户端 方案10G 万兆网 TCP-->服务器客户端 方案 3、该UDP协议栈性能4、详细设计方案设计架构框图网络调试助手…

传感数据分析——小波滤波

传感数据分析——小波滤波 文章目录 传感数据分析——小波滤波前言一、运行环境二、Python实现总结 前言 小波滤波算法是一种基于小波变换的滤波方法&#xff0c;其核心思想是将信号分解成不同的频率成分&#xff0c;然后对每个频率成分进行独立的处理。小波滤波器的设计和应用…

第12课 实现桌面与摄像头叠加

在上一节&#xff0c;我们实现了桌面捕获功能&#xff0c;并成功把桌面图像和麦克风声音发送给对方。在实际应用中&#xff0c;有时候会需要把桌面与摄像头图像叠加在一起发送&#xff0c;这节课我们就来看下如何实现这一功能。 1.备份与修改 备份demo11并修改demo11为demo12…

安达发|基于APS排程系统的PDM功能

APS系统&#xff08;Advanced Planning and Scheduling&#xff0c;先进计划与排程&#xff09;是一种基于APS系统&#xff08;Advanced Planning and Scheduling&#xff0c;先进计划与排程&#xff09;是一种基于供应链管理和生产管理的综合性软件系统。它通过整合企业内外部…

在anaconda中安装pytorch的GPU版本

本文前提&#xff1a; 1.你已经下载好了anaconda,最好是新建一个虚拟环境来安装pytorch的GPU版本&#xff0c;并且设置了国内镜像源&#xff1b; 2.了解自己电脑对应的cuda版本&#xff0c;可通过nvidia-smi&#xff0c;并下载好了cuda。 安装pytorch的GPU版本 到官网中https…

微信公众号-订阅通知

第一步&#xff1a; 公众号需要实名认证&#xff0c;完成以后&#xff01; 设置-开发里找到基本配置&#xff1a; 开发者ID(AppID):xxxxxxxxxxxxxxxxxxxxxxxxx 开发者密码(AppSecret):xxxxxxxxxxxxxxxxxxxxxxxxx 白名单IP也要填写上你的服务器IP哦&#xff01; 第二步&am…

聊天Demo

文章目录 参考链接使用前端界面消息窗口平滑滚动至底部vue使用watch监听vuex中的变量变化 参考链接 vue.js实现带表情评论功能前后端实现&#xff08;仿B站评论&#xff09; vue.js实现带表情评论仿bilibili&#xff08;滚动加载效果&#xff09; vue.js支持表情输入 vue.js表…

使用Scrapy框架和代理IP进行大规模数据爬取

目录 一、前言 二、Scrapy框架简介 三、代理IP介绍 四、使用Scrapy框架进行数据爬取 1. 创建Scrapy项目 2. 创建爬虫 3. 编写爬虫代码 4. 运行爬虫 五、使用代理IP进行数据爬取 1. 安装依赖库 2. 配置代理IP和User-Agent 3. 修改爬虫代码 4. 运行爬虫 六、总结 一…

【AI视野·今日Sound 声学论文速览 第四十二期】Fri, 5 Jan 2024

AI视野今日CS.Sound 声学论文速览 Fri, 5 Jan 2024 Totally 10 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Sound Papers PosCUDA: Position based Convolution for Unlearnable Audio Datasets Authors Vignesh Gokul, Shlomo Dubnov深度学习模型需要大量干净的…

Vue3中如何安装和配置静态路由

1.安装vue-router pnpm i vue-router 2.在src下闯将router目录&#xff0c;在它下边再建一个index.ts,用来创建路由和配置静态路由&#xff08;静态路由就是不管哪个用户都会有的路由页面&#xff0c;比如&#xff0c;登陆页面&#xff0c;主页面&#xff0c;404页面&#…

窗体内元素遍历-通用方法(DevExpress 中BarManager的遍历)

因为一些业务需求&#xff0c;需要对WinForm窗体中的BarManager进行遍历设置。但是DevExpress.XtraBars.BarManager 没有继承Control基类&#xff0c;所以无法使用this.Controls进行遍历。 可以使用下面代码进行遍历&#xff1a; private object SearchBarManager(){try{Syste…

c++ execl 执行 重定向

#include <unistd.h>int main() {pid_t childPid fork(); // 创建子进程if (childPid 0) {// 子进程// 关闭标准输入、输出和错误流close(STDIN_FILENO);close(STDOUT_FILENO);close(STDERR_FILENO);// 打开要写入的文件int fd open("output.txt", O_WRONLY…

【算法Hot100系列】合并两个有序链表

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老导航 檀越剑指大厂系列:全面总结 jav…

前端nginx配置指南

前端项目发布后&#xff0c;有些接口需要在服务器配置反向代理&#xff0c;资源配置gzip压缩&#xff0c;配置跨域允许访问等 配置文件模块概览 配置示例 反向代理 反向代理是Nginx的核心功能之一&#xff0c;是指客户端发送请求到代理服务器&#xff0c;代理服务器再将请求…

数据结构-怀化学院期末题(321)

图的广度优先搜索 题目描述&#xff1a; 图的广度优先搜索类似于树的按层次遍历&#xff0c;即从某个结点开始&#xff0c;先访问该结点&#xff0c;然后访问该结点的所有邻接点&#xff0c;再依次访问各邻接点的邻接点。如此进行下去&#xff0c;直到所有的结点都访问为止。在…