Windows Docker笔记-Docker容器操作

在文章《Windows Docker笔记-Docker拉取镜像》中,已经拉取成功了ubuntu镜像,本章来讲解如何通过镜像来创建容器并运行容器。

这里再类比一下,加深理解,比如,我们现在想开一个玩具厂,我们的最终目的肯定是想让玩具厂生产流水线正常工作,产出玩具。那么现在拿到的Ubuntu镜像,就相当于我们已经准备好了建工厂的材料(砖、钢筋、水泥等等)和建筑工具(docker),仅此而已。想要修建工厂,就必须找建筑工人使用建筑工具,用建筑材料来修建。

建筑工人:开发者,运维人员
建筑工具:docker
建筑材料:Ubuntu镜像

查看本地镜像

查看本地镜像

创建容器

命令:docker run [OPTIONS] IMAGE [COMMAND] [ARG…]
[COMMAND] 和 [ARG…]两个参数可选,目前还没有用到,后续补充。
[OPTIONS]常用选项包括:

  • -i, --interactive:以交互式模式运行命令,接受用户输入
  • -t, --tty:为终端分配一个tty设备,使容器能够与终端进行交互
  • -d, --detach:指定容器在后台运行
  • -p, --publish:指定容器的端口映射
  • -v, --volume:指定容器的目录挂载
  • –name:指定容器的名称
  • -e, --env:设置容器的环境变量
  • –rm:容器运行结束后自动删除

案例1:docker run -it --name myUbuntu a04dc4851cbc # 如果使用镜像ID,直接写上就可以
案例2:docker run -it --name myUbuntu ubuntu:latest # 如果使用镜像名称,需要指定镜像版本(Tag),否则默认为本地相同镜像所有版本中最新的。

docker run 创建容器
可以看到,在创建的容器中使用Linux命令,就像在Ubuntu虚拟机中使用一样的,非常的帅气。

退出容器

当前是在容器的终端中,想要退出容器终端,回到windows命令行终端,需要使用如下命令。

命令:exit

exit 退出终端

Docker命令查看创建的容器

命令:docker ps # 只显示正常运行的容器
命令:docker ps -a # 显示所有容器,包括正在运行的和已经停止的。

docker ps 查看容器
可以看到,刚刚创建容器的信息:

容器ID镜像终端创建时间状态端口容器名称
da3b54c08bd5ubuntu:latest/bin/bash24 minutes agoExitedmyUbuntu

由上发现,在使用了容器终端命令exit后,容器也退出停止了。应该如何重新启动一个已经存在的容器呢?

启动现有的容器

命令:docker start myUbuntu # 参数使用容器名称
命令:docker start da3b54c08bd5 # 参数使用容器ID

docker start 启动容器
可以看到容器的状态已经变成了启动。但是如何才能再进入到容器中使用容器呢?

Docker进入已经运行的容器的终端

命令:docker exec [OPTIONS] CONTAINER COMMAND [ARG…]
参数说明

  • CONTAINER:指定要操作的容器名称或容器ID。
  • COMMAND:在容器中要执行的命令。
  • [ARG…]:命令的参数。

常用选项

  • -d:在后台运行命令。
  • -i:保持 STDIN 打开,即使没有附加。
  • -t:分配一个伪终端(TTY)。
  • –user 或 -u:指定在容器中运行命令的用户(默认为容器的默认用户)。
  • –workdir 或 -w:指定在容器中运行命令的工作目录。
  • –env 或 -e:设置环境变量。
  • –privileged:以特权模式运行命令。

案例:docker exec -it myUbuntu /bin/bash #这里 COMMAND 参数对应 查看容器信息时的COMMAND字段内容

docker exec 进入容器终端
此时,在容器终端再次执行exit,退出容器,发现容器也不会退出(停止),状态还是运行的状态。
退出容器查看状态
那这种情况应该如何停止容器呢?

停止正在运行的容器

命令:docker stop myUbuntu # 参数使用容器名称
命令:docker stop da3b54c08bd5 # 参数使用容器ID

docker stop 退出容器
可以看到容器已经停止了。

客户端查看容器(两边同步的)

客户端查看容器信息
讲到这里,就好比已经建好了玩具厂,也知道了玩具厂大门,怎么打开和关闭。但是现在仅仅是一个空的厂房,里面没有生产玩具的流水线设备。那么下一章讲解如何修建生产线。


上一章:Windows Docker笔记-Docker拉取镜像
下一章:Windows Docker笔记-在容器中运行项目

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

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

相关文章

Java语法糖详解

前言 在现代编程语言的发展历程中,语法糖(Syntactic Sugar)作为一种提升代码可读性和开发效率的重要特性,已经成为语言设计的重要组成部分。Java作为一门成熟且广泛应用的编程语言,在其长期演进过程中,语法…

机器学习中的关键概念:通过SKlearn的MNIST实验深入理解

欢迎来到我的主页:【Echo-Nie】 本篇文章收录于专栏【机器学习】 1 sklearn相关介绍 Scikit-learn 是一个广泛使用的开源机器学习库,提供了简单而高效的数据挖掘和数据分析工具。它建立在 NumPy、SciPy 和 matplotlib 等科学计算库之上,支持…

Java数据结构与算法之“树”

目录 一、什么是树 ​编辑 二、树的相关组成 1. 常用名词 2.需要了解的名词 三、树的分类 (一)初级树 1.普通树 2.二叉树 (二)中级树 1.哈夫曼树HuffmanTree 2.二叉搜索树BST 3.平衡二叉树AVL (三&#x…

【Linux】27.Linux 多线程(1)

文章目录 1. Linux线程概念1.1 线程和进程1.2 虚拟地址是如何转换到物理地址的1.3 线程的优点1.4 线程的缺点1.5 线程异常1.6 线程用途 2. Linux进程VS线程2.1 进程和线程2.2 关于进程线程的问题 3. Linux线程控制3.1 POSIX线程库3.2 创建线程3.3 线程终止3.4 线程等待3.5 分离…

SpringAI系列 - 使用LangGPT编写高质量的Prompt

目录 一、LangGPT —— 人人都可编写高质量 Prompt二、快速上手2.1 诗人 三、Role 模板3.1 Role 模板3.2 Role 模板使用步骤3.3 更多例子 四、高级用法4.1 变量4.2 命令4.3 Reminder4.4 条件语句4.5 Json or Yaml 方便程序开发 一、LangGPT —— 人人都可编写高质量 Prompt La…

2025.2.6

一、C思维导图: 二、C: 三、注释代码 1> 配置文件:.pro文件 QT core gui # 引入的类库,core表示核心库 gui图形化界面库greaterThan(QT_MAJOR_VERSION, 4): QT widgets # 超过版本4的qt,会自动加widgets…

【算法应用】Alpha进化算法求解二维栅格路径规划问题

目录 1.算法原理2.二维路径规划数学模型3.结果展示4.参考文献5.代码获取 1.算法原理 Alpha进化:一种具有进化路径自适应和矩阵生成的高效进化算法 2.二维路径规划数学模型 栅格法模型最早由 W.E. Howden 于 1968 年提出,障碍物的栅格用黑色表示&#…

ubuntu20.04+RTX4060Ti大模型环境安装

装显卡驱动 这里是重点,因为我是跑深度学习的,要用CUDA,所以必须得装官方的驱动,Ubuntu的附件驱动可能不太行. 进入官网https://www.nvidia.cn/geforce/drivers/,选择类型,最新版本下载。 挨个运行&#…

Spring Boot 2 快速教程:WebFlux优缺点及性能分析(四)

WebFlux优缺点 【来源DeepSeek】 Spring WebFlux 是 Spring 框架提供的响应式编程模型,旨在支持非阻塞、异步和高并发的应用场景。其优缺点如下: 优点 高并发与低资源消耗 非阻塞 I/O:基于事件循环模型(如 Netty)&am…

DeepSeek 硅基流动

DeepSeek 硅基流动 🎁 四大神仙优势🌟 三步拥有官网同款671B大模型1️⃣ 戳这里👉 国内直连通道2️⃣ 复制API密钥3️⃣ 安装Chatbox贴进软件秒变AI大佬 📁 网盘地址:(所用到的软件可以直接下载&#xff09…

mysql 学习10 多表查询 -多表关系,多表查询

多表关系 一对多 多对多 创建学生表 #多对多表 学生选课系统create table student(id int primary key auto_increment comment 主键ID,name varchar(64) comment 姓名,studentnumber varchar(10) comment 学号 )comment 学生表;insert into student(id,name,studentnumber)va…

云端IDE如何重定义开发体验

豆包 MarsCode 是一个集成了AI功能的编程助手和云端IDE,旨在提高开发效率和质量。它支持多种编程语言和IDE,提供智能代码补全、代码解释、单元测试生成和问题修复等功能,同时具备AI对话视图和开发工具。 豆包 MarsCode 豆包 MarsCode 编程助…

redis之RDB持久化过程

redis的rdb持久化过程 流程图就想表达两点: 1.主进程会fork一个子进程,子进程共享主进程内存数据(fork其实是复制页表),子进程读取数据并写到新的rdb文件,最后替换旧的rdb文件。 2.在持久化过程中主进程接收到用户写操作&#x…

15.PPT:文静-云计算行业发展【29】

目录 NO123​ NO345​ NO6​ NO78 NO9/10/11/12​ NO123 设计→幻灯片大小→自定义幻灯片大小→ 全屏显示(16:9)→最大化 NO345 SmartArt 主题颜色2/6/9:形状样式:样式 加大行距加宽间距 NO6 NO78 设计→设置背景…

deepseek本地部署,使用python交互运行

deepseek Github 地址:https://github.com/deepseek-ai/DeepSeek-R1 在Github中我们看到这样的图片,模型参数等都可以通过HuggingFace下载,DeepSeek-R1-Distill-Qwen-参数量,参数量越大,对显存的要求更高 我们以参数量…

SpringUI Web高端动态交互元件库

Axure Web高端动态交互元件库是一个专为Web设计与开发领域设计的高质量资源集合,旨在加速原型设计和开发流程。以下是关于这个元件库的详细介绍: 一、概述 Axure Web高端动态交互元件库是一个集成了多种预制、高质量交互组件的工具集合。这些组件经过精…

Spring Boot整合MQTT

MQTT是基于代理的轻量级的消息发布订阅传输协议。 1、下载安装代理 进入mosquitto下载地址:Download | Eclipse Mosquitto,进行下载,以win版本为例 下载完成后,在本地文件夹找到下载的代理安装文件 使用管理员身份打开安装 安装…

网络数据请求

1.GET和POST请求 1.1发送GET请求 1.2发送POST请求 1.3 在页面刚加载的时候请求数据 2.request请求的注意事项

【OpenCV实战】基于 OpenCV 的多尺度与模板匹配目标跟踪设计与实现

文章目录 基于 OpenCV 的模板匹配目标跟踪设计与实现1. 摘要2. 系统概述3. 系统原理3.1 模板匹配的基本原理3.2 多尺度匹配 4. 逻辑流程4.1 系统初始化4.2 主循环4.3 逻辑流程图 5. 关键代码解析5.1 鼠标回调函数5.2 多尺度模板匹配 6. 系统优势与不足6.1 优势6.2 不足 7. 总结…

数据结构与算法学习笔记----博弈论

# 数据结构与算法学习笔记----博弈论 author: 明月清了个风 first publish time: 2025.2.6 ps⭐️包含了博弈论中的两种问题Nim游戏和SG函数,一共四道例题,给出了具体公式的证明过程。 Acwing 891. Nim游戏 [原题链接](891. Nim游戏 - AcWing题库) 给…