Docker笔记5 | 容器的基本操作

news2024/11/27 17:37:14

5 | 容器的基本操作

  • 1 启动容器
    • 1.1 启动方式
    • 1.2 新建容器并启动
    • 1.3 docker run时的运行过程
    • 1.4 启动已终止容器
    • 1.5 后台运行
    • 1.6 查看容器信息
  • 2 终止容器
  • 3 进入容器
    • 3.1 docker attach
    • 3.2 docker exec
  • 4 导入导出容器
    • 4.1 导出容器
    • 4.2 导入容器
  • 5 删除容器

1 启动容器

1.1 启动方式

两种启动方式:

  • 新建容器并启动;
  • 终止状态的容器重新启动。

1.2 新建容器并启动

  • 启动命令:docker run
  • 输出hello world,终止容器:
docker run ubuntu:18.04 /bin/echo "hello world"
noamanelson@noamanelson-Virtual-Machine:~$ docker run ubuntu:18.04 /bin/echo "hello world"
hello world
  • 启动bash,进行用户交互操作:
docker run -t -i ubuntu:18.04 /bin/bash
noamanelson@noamanelson-Virtual-Machine:~$ docker run -t -i ubuntu:18.04 /bin/bash
root@b0d76f1a813b:/# 
root@b0d76f1a813b:/# 
root@b0d76f1a813b:/# 
参数说明
-tdocker分配一个伪终端并绑定到容器的标准输入上
-i让容器的标准输入保持打开

1.3 docker run时的运行过程

不存在
存在
本地指定镜像
从公有仓库下载
圆角长方形
利用镜像创建容器
分配文件系统并挂在可读写层
桥接虚拟接口到容器
配置ip
启动
执行应用程序
容器终止

1.4 启动已终止容器

  • 命令:docker container start

1.5 后台运行

  • 使用-d参数即可;
  • 比如如下,容器会在后台运行,而不会直直接打印:
docker run -d ubuntu:18.04 /bin/echo "sdsdsd"
noamanelson@noamanelson-Virtual-Machine:~$ docker run -d ubuntu:18.04 /bin/echo "sdsdsd"
056508ab9ff61b07a468418bd281b03ee023abbbc514f7a7392d3a59d18ac0dc
noamanelson@noamanelson-Virtual-Machine:~$
  • 如果要查看结果,直接使用docker logs
noamanelson@noamanelson-Virtual-Machine:~$ docker logs 056508ab9ff61b07a468418bd281b03ee023abbbc514f7a7392d3a59d18ac0dc
sdsdsd
noamanelson@noamanelson-Virtual-Machine:~$

1.6 查看容器信息

  • 命令:docker container ls
noamanelson@noamanelson-Virtual-Machine:~$ docker container ls
CONTAINER ID   IMAGE          COMMAND       CREATED          STATUS         PORTS     NAMES
04489fec9611   ubuntu:18.04   "/bin/bash"   12 seconds ago   Up 9 seconds             modest_nobel

2 终止容器

  • 命令:docker container stop
  • 比如启动一个bash,然后查看容器,再终止容器,再启动容器:

启动:docker container start
重启:docker container restart

docker run -t -i ubuntu:18.04 /bin/bash
docker container ls
CONTAINER ID   IMAGE          COMMAND       CREATED          STATUS          PORTS     NAMES
0a9622dfb8f8   ubuntu:18.04   "/bin/bash"   51 seconds ago   Up 48 seconds             exciting_hodgkin
docker container stop 0a9622dfb8f8

在这里插入图片描述
在这里插入图片描述

3 进入容器

3.1 docker attach

  • 如下运行容器,查看容器,进入容器:
noamanelson@noamanelson-Virtual-Machine:~$ docker run -dit ubuntu:18.04
f28907e275433bc54d18c9e791e2d593e0a3b2d55562932a025022ae2e515532
noamanelson@noamanelson-Virtual-Machine:~$ docker container ls
CONTAINER ID   IMAGE          COMMAND       CREATED          STATUS          PORTS     NAMES
e3931186d9e8   ubuntu:18.04   "/bin/bash"   39 seconds ago   Up 36 seconds             distracted_hermann
noamanelson@noamanelson-Virtual-Machine:~$ docker attach e393
root@e3931186d9e8:/# 
root@e3931186d9e8:/# 
root@e3931186d9e8:/# 
root@e3931186d9e8:/# 
root@e3931186d9e8:/#
  • 使用docker attach进入容器后,会导致容器停止。

3.2 docker exec

  • 也是进入容器,和docker attach区别是不会导致容器停止,建议使用这个方式;
  • 如下运行容器,查看容器,进入容器之后,容器不会停止:
noamanelson@noamanelson-Virtual-Machine:~$ docker run -dit ubuntu:18.04
714618edc1103ff02eda2b2c5f33e4ff48ac15efc1aeda0a9087d6d63b124dbb
noamanelson@noamanelson-Virtual-Machine:~$ docker container ls
CONTAINER ID   IMAGE          COMMAND       CREATED         STATUS         PORTS     NAMES
714618edc110   ubuntu:18.04   "/bin/bash"   4 seconds ago   Up 2 seconds             jovial_brahmagupta
noamanelson@noamanelson-Virtual-Machine:~$ docker exec -i 7146
"docker exec" requires at least 2 arguments.
See 'docker exec --help'.

Usage:  docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

Execute a command in a running container
noamanelson@noamanelson-Virtual-Machine:~$ docker exec -i 7146 bash
ls
bin
boot
dev
etc
home
lib
lib64
media
mnt
opt
proc
root
run
sbin
srv
sys
tmp
usr
var
  • 结合-t使用后和docker attach类似了:
noamanelson@noamanelson-Virtual-Machine:~$ docker exec -it 7146 bash
root@714618edc110:/# 
root@714618edc110:/# 
root@714618edc110:/# 
root@714618edc110:/# 
root@714618edc110:/#

4 导入导出容器

4.1 导出容器

  • 命令:docker export
    在这里插入图片描述

4.2 导入容器

  • 命令: docker import
    在这里插入图片描述

5 删除容器

  • 命令:docker container rm

在这里插入图片描述

  • 这个命令是删除没有运行的容器;
  • 如果删除运行中的容器,会提示容器正在运行,无法删除:
noamanelson@noamanelson-Virtual-Machine:~$ docker container ls 
CONTAINER ID   IMAGE          COMMAND       CREATED          STATUS          PORTS     NAMES
714618edc110   ubuntu:18.04   "/bin/bash"   13 minutes ago   Up 13 minutes             jovial_brahmagupta
noamanelson@noamanelson-Virtual-Machine:~$ docker container rm jovial_brahmagupta
Error response from daemon: You cannot remove a running container 714618edc1103ff02eda2b2c5f33e4ff48ac15efc1aeda0a9087d6d63b124dbb. Stop the container before attempting removal or force remove
noamanelson@noamanelson-Virtual-Machine:~$ 
  • 要删除运行中的容器,可以加-f参数:
    在这里插入图片描述
  • 删除所有处于终止状态的容器,使用命令docker container prune

使用docker container ls -a可以查看终止的容器

在这里插入图片描述

使用清除命令:

在这里插入图片描述

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

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

相关文章

Linux内核主要组成部分有哪些?

Linux 内核由几大子系统构成,分别为进程调度、进程间通信(IPC) 、内存管理、虚拟 文件系统和网络接口。这几大子系统既相互独立又有非常紧密的关联。图 3-5 展示了内核的 几大子系统之间以及这些子系统和计算机系统的其他模块之间的关系。 接…

ADS-B教学实验方案

ADS-B教学系统是为了让学生学习ADS-B原理、ADS-B系统组成、ADS-B信号处理技术。可以通过ADS-B教学系统进一步研究分析ADS-B位置的精度、准确性、稳定性、实时性,设计基于ADS-B的空中碰撞告警系统,混合空域的空中交通管理系统(UTM)设计。也可以研究ADS-B报…

《花雕学AI》你不知道的AI 机器人:29个让你大开眼界的事实

AI 机器人是人工智能技术的最具代表性的应用之一,它们可以模仿人类的行为和思维,完成各种复杂的任务,如识别图像、语音和文字,进行对话、翻译和推理,控制机械臂、汽车和飞机等。AI 机器人的发展速度令人惊叹&#xff0…

Windows命令提示行使用指南二(批处理)

命令提示行使用指南 前言四、批处理简介五、如何编写批处理1、Hello world2、做加法3、查找文件,并输出到文本。4、批量重命名5、自动记录开机时间 前言 cmd 是 Windows 操作系统中的命令行界面(CLI),也称为命令提示符&#xff0…

Linux shell编程 数组排序算法

冒泡排序 循环对比相邻的元素,交换较大元素到后面的位置 大循环根据列表中存在的元素数量循环n-1次,保证所有元素都能被排序完成 小循环从前向后遍历,循环一次循环范围减少一位(由于后面的已经排列完成无需再比较)小循…

【halcon知识】应用仿射变换

一、说明 无论什么样的变换,都离不开齐次变换矩阵。一般地,先准备一个空的齐次变换矩阵,这个矩阵随便填写:1)填入旋转类参数就是旋转矩阵,2——填入仿射参数就可进行仿射变换,3)填入…

Kali-linux攻击WordPress和其他应用程序

今天越来越多的企业利用SAAS(Software as a Service)工具应用在他们的业务中。例如,他们经常使用WordPress作为他们网站的内容管理系统,或者在局域网中使用Drupal框架。从这些应用程序中找到漏洞,是非常有价值的。 为…

[JAVA数据结构]堆

目录 1.堆的概念 2.堆的创建 3.堆的插入与删除 3.1堆的插入 3.2堆的删除 1.堆的概念 如果有一个关键码的集合K {k0,k1, k2,…,kn-1},把它的所有元素按完全二叉树的顺序存储方式存储在一个一维数组中,…

【Linux】远程桌面连接服务器报错:未启用对服务器的远程访问......

🍁博主简介 🏅云计算领域优质创作者   🏅华为云开发者社区专家博主   🏅阿里云开发者社区专家博主 💊交流社区:运维交流社区 欢迎大家的加入! 文章目录 前述操作环境说明:远程报…

<数据结构>NO4.带头双向循环链表

文章目录 前言1. 头文件2. 函数实现1)创建哨兵位节点2)新增一个节点3)打印链表4)头插5)尾插6)头删7)尾删8)查找9)pos前插入10)删除pos处节点11)销…

Redis 缓存穿透、缓存击穿与缓存雪崩

文章目录 1. 缓存穿透解决方法 2. 缓存击穿解决方法 3. 缓存雪崩解决方法 在 redis 的应用场景中,需要考虑缓存在某些场景下可能出现的问题: 缓存穿透 缓存击穿 缓存雪崩 以下缓存问题的讨论都是基于以下应用架构讨论的: 1. 缓存穿透 对应…

数据备份系列:Rsync 备份实战记录(二)

一、Rsync Cron 场景使用 在对数据备份要求实时性不高的情况下,可优先考虑该场景,选择一个合适的时间,对数据进行定时远程增量同步。 在《数据备份系列:Rsync 备份详解(一)》中我们已经对服务搭建以及远程…

DAD-DAS模型

DAD-DAS模型 文章目录 DAD-DAS模型[toc]1 产品服务:需求方程2 实际利率:费雪方程3 通货膨胀:菲利普斯方程4 预期通货膨胀:适应性预期5 货币政策规则:泰勒方程6 动态总供给-总需求方程(DAS-DAD)7 总供给冲击模拟 1 产品服务:需求方…

【JavaEE初阶】文件操作——IO

摄影分享~ 文章目录 文件文件路径(Path) 文件的类型Java中操作文件File概述 文件内容的读写——数据流字节流InputStream概述OutputStream 概述字符流FileInputStream 概述利用 Scanner 进行字符读取 实例练习 文件 文件:File这个概念&…

PostSQL内存管理之内存上下文

瀚高数据库 目录 环境 文档用途 详细信息 环境 系统平台:Linux x86-64 Red Hat Enterprise Linux 7 版本:14 文档用途 了解pg内存分配 详细信息 1.MemoryContex机制 内存上下文是pg相关的内存控制结构,树形结构组织下的内存上下文能在频繁的…

SNMPc软件的下载和安装教程,计算机网络管理,网络工程师

⬜⬜⬜ 🐰🟧🟨🟩🟦🟪(*^▽^*)欢迎光临 🟧🟨🟩🟦🟪🐰⬜⬜⬜ ✏️write in front✏️ 📝个人主页:陈丹宇jmu &am…

vue 改变数据后,数据变化页面不刷新

文章目录 导文文章重点方法一:使用this.$forceUpdate()强制刷新方法二:Vue.set(object, key, value)方法三:this.$nextTick方法四:$set方法 导文 在vue项目中,会遇到修改完数据,但是视图却没有更新的情况 v…

让开发者成为创新主体 | 阿里云云原生4月动态

作者:云原生内容小组 云原生月度动态 ✦ 云原生是企业数字创新的最短路径。 《阿里云云原生每月动态》,从趋势热点、产品新功能、服务客户、开源与开发者动态等方面,为企业提供数字化的路径与指南。 本栏目每月更新。 01 趋势热点 &…

vue - 实现登录后用户无操作后自动退出登录功能,当用户鼠标不动、键盘不动、无窗口滚动时自动清除登录状态(可自定义删减条件,详细示例源码一键复制开箱即用)

需求 很多教程都是无效而且有bug。。很难用索性自己搞了最健壮的解决方案。 在vue项目中,实现自动检测用户没有【移动鼠标】【操作键盘】【窗口滚动】时,自动清除登录信息强制退出登录下线,支持自定义触发时间(比如无操作10分钟就执行),自定义条件(比如只监听用户鼠标是…

匿名对象以及临时空间

目录 大纲 1.何为匿名对象 2.产生匿名对象的四种情况: 1)给初始化对象时 2)以值的方式给函数传参; 3)类型转换; 4)函数返回时; 3.编译器优化 I.在同一行代码的优化 II.在函…