Windows Docker笔记-Docker容器操作

devtools/2025/2/10 22:55:46/

在文章《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),否则默认为本地相同镜像所有版本中最新的。

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

退出容器

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

命令:exit

exit 退出终端

Docker命令查看创建的容器

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

<a class=docker ps 查看容器" />
可以看到,刚刚创建容器的信息:

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

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

启动现有的容器

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

<a class=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字段内容

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

停止正在运行的容器

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

<a class=docker stop 退出容器" />
可以看到容器已经停止了。

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

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


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


http://www.ppmy.cn/devtools/157753.html

相关文章

Maven 安装配置(完整教程)

文章目录 一、Maven 简介二、下载 Maven三、配置 Maven3.1 配置环境变量3.2 Maven 配置3.3 IDEA 配置 四、结语 一、Maven 简介 Maven 是一个基于项目对象模型&#xff08;POM&#xff09;的项目管理和自动化构建工具。它主要服务于 Java 平台&#xff0c;但也支持其他编程语言…

DeepSeek背景下的知识库搭建指南

在人工智能领域&#xff0c;DeepSeek无疑是一个近期的热门话题。作为杭州深度求索&#xff08;DeepSeek&#xff09;官方推出的AI助手&#xff0c;DeepSeek凭借其强大的自然语言处理能力、逻辑推理能力和问题解决能力&#xff0c;迅速赢得了广大用户的青睐。随着DeepSeek-V3大模…

从DeepSeek上线亚马逊云科技,看大模型争霸背后的隐形战场

小葳 | 智能进化论 2025年开年&#xff0c;凭借与顶尖模型相当的性能、极高的成本效益与开源模式&#xff0c;DeepSeek系列模型成为搅动全球AI行业的新星。DeepSeek应用上线仅20天&#xff0c;日活就突破了2000万&#xff0c;这让其超越ChatGPT成全球增长最快的AI应用。 Deep…

春节假期旅游热潮下,景区医疗安全如何全面升级?

春节假期旅游热潮下&#xff0c;景区医疗安全如何全面升级&#xff1f; 随着旅游业的不断繁荣&#xff0c;春节假期期间&#xff0c;各大景区再次迎来了游客的高峰期。面对如此庞大的客流量&#xff0c;景区不仅要在服务接待上下功夫&#xff0c;更要将医疗安全保障工作提升到…

如何设置爬虫的延时避免频繁请求?

在Python爬虫开发中&#xff0c;合理设置延时是避免频繁请求、降低被封禁风险的关键策略之一。以下是一些常见的延时设置方法和建议&#xff1a; 1. 使用 time.sleep() 设置固定延时 time.sleep() 是最简单直接的延时方法&#xff0c;通过暂停程序的执行来控制请求频率。例如…

统计日志文件中每种时间类型的数量

#要求&#xff1a;给一个大数据集群的日志文件&#xff0c;每行日志记录了一个事件&#xff0c;格式如下&#xff1a; timestamp event_type event_details 比如&#xff1a; 3123123123 START JobA started 3123123123 END JobA over 3123123123 ERROR JobA started 312312312…

MySQL Workbench安装教程以及菜单汉化

WorkBench的下载 直接给下载MySql WorkBench的链接&#xff0c;直接进入正题&#xff1a;MySQL :: Download MySQL Workbench[这里是图片001]https://dev.mysql.com/downloads/workbench/进入了下载界面&#xff1a; &#xff08;安装路径自己看着办&#xff0c;注意安装路径不…

HTML之CSS定位、浮动、盒子模型

HTML之CSS定位、浮动、盒子模型 定位 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document<…