Docker系列教程02-操作Docker容器_把宿主机上的 data目录复制到容器内 data目录,下列选项正确的是()。

分配一个tty伪终端,支持终端登录

2、启动容器

使用docker create命令新建的容器处理停止状态,可使用docker start启动它。

例如,启动刚刚创建的ubuntu容器:

[root@qll251 ~]# docker start eeb
eeb

eeb为刚刚创建容器的ID简写,此时通过docker ps查询容器已运行:

3、新建并启动容器

docker run 语法

例如,使用 ubuntu 镜像启动一个容器,参数为以命令行模式进入该容器:

[root@qll251 ~]# docker run -it ubuntu /bin/bash
root@8b18b6758bb6:/#

docker run相当于执行了两个步骤:将镜像放入容器中(docker create),然后启动容器(docker start)。

4、后台运行容器

对于刚刚所创建的容器,当用户使用exit命令退出后,容器也会自动退出,如下图所示的Exited状态。

Exited状态

因为对它来说,当容器的应用退出后,容器使命完成,也就没有继续运行的必要了。

因此更多时候,我们希望 Docker 容器是在后台一直运行。此时可以通过添加-d参数来实现。验证如下:

添加 -d 参数实现容器后台运行

小知识点:如果不指定后台运行容器,还有其他办法退出而容器不关闭吗?按Ctrl+P+Q即可实现正常退出不关闭容器。验证如下:

2、停止容器

1、暂停容器

docker pause 语法

例如,暂停容器中所有的进程

处于paused状态的容器,可以使用docker unpause命令恢复到运行状态,如图:

docker unpause 命令

2、终止容器

docker stop 语法

举例:

该命令首先向容器发送SIGTERM信号,等待一段超时时间后(默认为10秒),再发送SIGKILL信号来终止容器:

[root@qll251 ~]# docker stop 021
021

3、强制终止容器

此外,还可以通过docker kill 直接发送SIGKILL信号强制终止容器。例如:

 [root@qll251 ~]# docker kill 021
021

4、删除所有停止状态的容器

[root@qll251 ~]# docker container prune
WARNING! This will remove all stopped containers.
Are you sure you want to continue? [y/N] y
Total reclaimed space: 1.1 GB
[root@qll251 ~]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
[root@qll251 ~]#

3、进入容器

当容器在后台运行时,用户是无法操作容器的。这个时候如果需要进入容器进行操作,推荐使用exec命令,语法格式如下:

docker exec 语法

例如,进入一个容器,并启动一个bash:

[root@qll251 ~]# docker exec -it 021 /bin/bash
root@0215d56eaf7d:/#

通过指定-it参数保持标准输入打开,并且分配一个伪终端。

进入容器后,我们可以进行操作,比如创建文件和列出当前运行进程:

操作容器

4、删除容器

docker rm 语法

例如,删除处于终止状态的容器:

默认情况下,docker rm命令只能删除处于终止或退出状态的容器,并不能删除处于运行状态的容器。如果要直接删除运行状态的容器,可以添加-f实现:

实际上,指定-f 参数时,Docker先发送SIGKILL信号给容器,终止其中的应用,之后强行删除。

更多关于容器删除的方法,参考文末本章命令小结

5、导入导出容器

docker的一大优势就是可移植性,容器可以随意的进行导入导出操作。下面一起看下具体怎么操作。

1、导出容器

将容器导出到一个文件中,可以使用docker export,命令格式如下:

docker export 语法

例如,将容器79b导出到/data/myubuntu.tar文件

[root@qll251 ~]# docker export 79b > /data/myubuntu.tar
[root@qll251 ~]# ls /data/
myubuntu.tar
[root@qll251 ~]#

注意:不管容器是否处于运行状态,都可以将容器导出到一个文件。

2、导入容器

可以使用docker import从容器快照文件中再导入为镜像,命令格式如下:

docker import 语法

例如,使用docker import将导出的myubuntu.tar文件导入为镜像,并且重新指定标签为qinlulu/ubuntu:v1,代码如下:

还记得上一章节,我们讲过docker load载入镜像吗?花1分钟回顾下:



两者区别

1、docker load的对象是镜像文件

2、docker import的对象是容器快照

3、用户既可以使用docker load导入镜像文件到本地镜像库,也可以使用docker import导入容器快照到本地镜像库。

4、两者的区别在于,使用容器快照文件导入的镜像将丢失所有的历史记录和元数据信息(即仅保存容器当时的快照状态),而镜像文件导入的镜像将保存完整记录,体积也要大。

5、此外,从容器快照文件导入镜像时,可重新指定标签等元数据信息。


6、查看容器

1、查看容器详细信息

docker inspect

上图返回的是一个JSON格式,包含容器ID、创建时间、路径、状态、镜像、配置等各项信息

2、查看容器内进程

docker top

最全的Linux教程,Linux从入门到精通

======================

  1. linux从入门到精通(第2版)

  2. Linux系统移植

  3. Linux驱动开发入门与实战

  4. LINUX 系统移植 第2版

  5. Linux开源网络全栈详解 从DPDK到OpenFlow

华为18级工程师呕心沥血撰写3000页Linux学习笔记教程

第一份《Linux从入门到精通》466页

====================

内容简介

====

本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。

华为18级工程师呕心沥血撰写3000页Linux学习笔记教程

本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。

需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 18
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值