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笔记-在容器中运行项目

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

upload-labs安装与配置

前言 作者进行upload-labs靶场练习时,在环境上出了很多问题,吃了很多苦头,甚至改了很多配置也没有成功。 upload-labs很多操作都是旧时代的产物了,配置普遍都比较老,比如PHP版本用5.2.17(还有中间件等&am…

(2025|ICLR,音频 LLM,蒸馏/ALLD,跨模态学习,语音质量评估,MOS)音频 LLM 可作为描述性语音质量评估器

Audio Large Language Models Can Be Descriptive Speech Quality Evaluators 目录 1. 概述 2. 研究背景与动机 3. 方法 3.1 语音质量评估数据集 3.2 ALLD 对齐策略 4. 实验结果分析 4.1 MOS 评分预测(数值评估) 4.2 迁移能力(在不同…

深入理解linux中的文件(下)

目录 一、语言级缓冲区和内核级缓冲区 二、C语音中的FILE* fp fopen(“./file.txt”,"w"): 四、理解磁盘结构: 物理结构 逻辑结构 五、未被打开的文件: 六、更加深入理解inode编号怎么找到文件: 七、对路径结构进行…

零基础Vue入门6——Vue router

本节重点: 路由定义路由跳转 前面几节学习的都是单页面的功能(都在专栏里面https://blog.csdn.net/zhanggongzichu/category_12883540.html),涉及到项目研发都是有很多页面的,这里就需要用到路由(vue route…

京准:NTP卫星时钟服务器对于DeepSeek安全的重要性

京准:NTP卫星时钟服务器对于DeepSeek安全的重要性 京准:NTP卫星时钟服务器对于DeepSeek安全的重要性 在网络安全领域,分布式拒绝服务(DDoS)攻击一直是企业和网络服务商面临的重大威胁之一。随着攻击技术的不断演化…

网络计算机的五个组成部分

单个计算机是无法进行通信的。所以需要借助网络。 下面介绍一些在网络里常见的设备。 一、服务器 服务器是在网络环境中提供计算能力并运行软件应用程序的特定IT设备 它在网络中为其他客户机(如个人计算机、智能手机、ATM机等终端设备)提供计算或者应用…

MATLAB实现单层竞争神经网络数据分类

一.单层竞争神经网络介绍 单层竞争神经网络(Single-Layer Competitive Neural Network)是一种基于竞争学习的神经网络模型,主要用于数据分类和模式识别。其核心思想是通过神经元之间的竞争机制,使得网络能够自动学习输入数据的特…

【漫画机器学习】082.岭回归(或脊回归)中的α值(alpha in ridge regression)

岭回归(Ridge Regression)中的 α 值 岭回归(Ridge Regression)是一种 带有 L2​ 正则化 的线性回归方法,用于处理多重共线性(Multicollinearity)问题,提高模型的泛化能力。其中&am…

网络安全 | 零信任架构:重构安全防线的未来趋势

网络安全 | 零信任架构:重构安全防线的未来趋势 一、前言二、零信任架构的核心概念与原理2.1 核心概念2.2 原理 三、零信任架构的关键技术组件3.1 身份管理与认证系统3.2 授权与访问控制系统3.3 网络与安全监测系统3.4 加密与数据保护技术 四、零信任架构与传统安全…

网络爬虫学习:借助DeepSeek完善爬虫软件,增加停止任务功能

一、引言 我从24年11月份开始学习网络爬虫应用开发,经过2个来月的努力,终于完成了开发一款网络爬虫软件的学习目标。这几天对本次学习及应用开发进行一下回顾总结。前面已经发布了两篇日志: 网络爬虫学习:应用selenium从搜*狐搜…

JVM图文入门

往期推荐 【已解决】redisCache注解失效,没写cacheConfig_com.howbuy.cachemanagement.client.redisclient#incr-CSDN博客 【已解决】OSS配置问题_keyuewenhua.oss-cn-beijing.aliyuncs-CSDN博客 【排坑】云服务器docker部署前后端分离项目域名解析OSS-CSDN博客 微服…

VScode如何使用deepseek详细教程

本章教程,主要介绍如何在vscode中,安装使用deepseek教程。deepseek生成式人工智能模型最近可是非常的热门。感兴趣的可以尝试看看吧。 一、注册deepseek账号 注册登录地址:https://platform.deepseek.com/api_keys 注册登录账号之后,创建一个API key ,将这个API key复制下…

大数据相关职位介绍之三(数据挖掘,数据安全 ,数据合规师,首席数据官,数据科学家 )

大数据相关职位介绍之三(数据挖掘,数据安全 ,数据合规师,首席数据官,数据科学家 ) 文章目录 大数据相关职位介绍之三(数据挖掘,数据安全 ,数据合规师,首席数据…

[基础]端口隔离实验

实验教程 隔离类型 双向隔离:统一端口隔离组的接口之间隔离,不同端口隔离组的接口之间不隔离,端口隔离只针对同一设备上的端口隔离组成员,对于不同设备上的接口而言无法实现。单向隔离:实现不同端口隔离组的接口之间的…

vscode 如何通过Continue引入AI 助手deepseek

第一步: 在deepseek 官网上注册账号,得到APIKeys(deepseek官网地址) 创建属于自己的APIKey,然后复制这个key,(注意保存自己的key)! 第二步: 打开vscode,在插件市场安装Continue插件, 点击设置,添加deepseek模型,默认…

FPGA的IP核接口引脚含义-快解

疑问 手册繁琐,怎样快速了解IP核各输入输出接口引脚的含义。 答疑 不慌不慌,手册确实比较详细但繁琐,如何快速知晓该部分信息,涛tao道长给你们说,简单得很,一般新入门的道友有所不知,往往后面…

“AI隐患识别系统,安全多了道“智能护盾”

家人们,在生活和工作里,咱们都知道安全那可是头等大事。不管是走在马路上,还是在工厂车间忙碌,又或是住在高楼大厦里,身边都可能藏着一些安全隐患。以前,发现这些隐患大多靠咱们的眼睛和经验,可…

RocketMQ中的NameServer主要数据结构

1.前言 NameServer是RocketMQ中的一个比较重要的组件,我们这篇博客针对NameSever中包含的组件进行分析,分析一下NameServer中包含的组件以及组件的作用。以前我有一篇博客中rocketMq源码分析之搭建本地环境-CSDN博客,在这篇博客中就简单看了…

8-登录流程

在AppStartInitFinish_CreateLoginUI.初始化后,执行Login界面的初始化 登录面板逻辑:UILoginComponentSystem,针对组件UILoginComponent创建的System 登录面板逻辑:UILoginComponent 逻辑层: LoginHelper中的clientSenderComponent.LoginA…

基于HAI部署DeepSeekR1的招标文书智能辅助生产开发与应用

一、前言 1.1行业背景 在日常商业活动中,招投标流程往往是企业竞标和项目落地的关键一环。其中,招标文书的编写工作对于投标企业极具挑战:既要保证逻辑清晰、条理分明,又必须遵循招标机构的各类格式规范,甚至还有特定…