Docker 系列三(容器管理).
一、运行容器
1、基于镜像新建一个容器并启动
docker run -it --rm -d -p : tomcat:8.0
-i:交互式操作
-t:终端
-rm:容器退出后随之将其删除,可以避免浪费空间
-p :端口映射
-d :容器在后台运行

指明了 -d 运行镜像,会返回容器的 id;如果不指明 -d 运行镜像,会打印出 catalina.out 的 日志,在 [crtl +c] 后,容器即停止运行。
当利用 docker run 来创建容器时,Docker 在后台运行的标准操作包括:
-- 检查本地是否存在指定的镜像,不存在就从公有仓库下载
-- 利用镜像创建并启动一个容器
-- 分配一个文件系统,并在只读的镜像层外面挂载一层可读写层
-- 从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中去
-- 从地址池配置一个 ip 地址给容器
-- 执行用户指定的应用程序
-- 执行完毕后容器被终止检查本地是否存在指定的镜像,不存在就从公有仓库下载
-- 利用镜像创建并启动一个容器
-- 分配一个文件系统,并在只读的镜像层外面挂载一层可读写层
-- 从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中去
-- 从地址池配置一个 ip 地址给容器
-- 执行用户指定的应用程序
-- 执行完毕后容器被终止
2、启动一个终止状态(stopped)的容器
docker container start [CONTAINER ID]
docker start $(docker ps -aq) --备注:启动所有 docker 容器

二、操作容器
1、查看容器列表
#列出运行中的容器
docker ps
docker container ls
#列出所有容器(包含终止状态)
docker ps -a
docker container ls -a
#查看具体容器的信息
docker inspect [container ID or NAMES]
#查看容器的使用资源状况
docker stats [container ID or NAMES]


2、查看容器日志
docker logs [OPTIONS] [container ID or NAMES]
--details 显示更多的信息
-f, --follow 跟踪实时日志
--since string 显示自某个timestamp之后(2018-07-23 00:00:00)的日志,或相对时间,如42m(即42分钟)
--tail string 从日志末尾显示多少行日志, 默认是all
-t, --timestamps 显示时间戳
--until string 显示自某个timestamp之前的日志,或相对时间,如42m(即42分钟)
3、进入容器
docker exec -it [CONTAINER ID] bash

进入容器后输入 exit 或者 [crtl + c] 即可退出容器。
三、终止容器
1、直接删除容器
#删除终止状态的容器
docker rm [CONTAINER ID]
#删除所有处于终止状态的容器
docker container prune
#删除未被使用的数据卷
docker volume prune
#删除运行中的容器
docker rm -f [CONTAINER ID] #批量停止所有的容器
docker stop $(docker ps -a -q)
#批量删除所有的容器
docker rm $(docker ps -a -q)
2、终止容器进程,容器进入终止状态(stopped)
docker container stop [CONTAINER ID]

四、容器的导出和导入
1、容器的导出
#这样将导出容器快照到本地文件
docker export [CONTAINER ID] > [tar file]
2、容器的导入
#从容器快照文件中再导入为镜像
cat [tar file] | docker import - [name:tag]

docker import 来导入一个容器快照到本地镜像库时,将丢弃所有的历史记录和元数据信息(即仅保存容器当时的快照状态),既然这样,那么 docker export 是不是可以考虑作为入侵时的现场保护呢?
参考资料:《Docker — 从入门到实践》
Docker 系列三(容器管理).的更多相关文章
- Docker背后的容器管理——Libcontainer深度解析
Libcontainer 是Docker中用于容器管理的包,它基于Go语言实现,通过管理namespaces.cgroups.capabilities以及文件系统来进行容器控制.你可以使用Libcon ...
- Docker系列三:Docker容器管理
Docker容器管理 1. 单一容器管理 1) 容器的启动 $ docker run --name gitlab-redis -d --volume /srv/docker/gitlab/redis: ...
- Docker系列02: 容器生命周期管理 镜像&容器
A) Docker信息1. 查看docker运行状态 systemctl status docker docker.service - Docker Application Container Eng ...
- Docker系列01—容器的发展历程---Docker的生态圈
本文收录在容器技术学习系列文章总目录 Docker 和容器技术的发展可谓是日新月异,本文试图以全局的视角来梳理一下 docker 目前的生态圈.既然是概览,所以不会涉及具体的技术细节. Docker ...
- Docker系列10—容器编排工具Docker Compose详解
本文收录在容器技术学习系列文章总目录 1.Docker Compose 概述 Compose是一个用于定义和运行多容器Docker应用程序的工具.使用Compose,您可以使用Compose文件来配置 ...
- Docker系列(三)常用命令
命令说明 docker pull 格式: docke pull [OPTIONS] NAME[:TAG] 作用:下载名称为 name 的镜像 例子: sudo docker pull dl.docke ...
- Docker进阶之五:容器管理
容器管理 一.创建容器常用选项 docker container --help 指令 描述 资源限制指令 -i, --interactive 交互式 -m,--memory 容器可以使用的最大内存量 ...
- Docker镜像和容器管理(二)
Docker安装 Docker镜像管理 https://hub.docker.com/ 是公共的一个Docker镜像仓库,类似GitHub一样,上面有非常多的开源项目镜像. 可以直接在命令行搜索镜像 ...
- Docker 镜像与容器管理
镜像与容器简介 Docker的大部分操作都围绕着它的三大核心概念:镜像.容器.仓库而展开.因此,准确把握这三大核心概念对于掌握Docker技术尤为重要,在docker中,我们重点关注的就是镜像和容器了 ...
- Docker 与 Podman 容器管理的比较
翻译自 Paul Ferrill 2020年9月1日的文章<Compare Docker vs. Podman for container management> [1] Docker 和 ...
随机推荐
- Unity一键设置导入图片格式
前几天由于项目原因,做了一个自动根据模型自动创建动画状态机,然后紧接着做了根据动画状态机和模型一键制作Prefab. 现在因为图片数量或者其它原因需要写一个一键设置图片格式的插件. 至于制作动画状态机 ...
- 简单读!spring-mvc源码之穿越http请求
相信spring-mvc这种被玩坏了的架构理念,大家都烂熟于胸了,不过还是想来扒一扒他的细节. 一个http请求,怎么样被 spring 接收,又怎样做出响应呢? 一般地,我们会配置一个 web.xm ...
- NumPy 学习笔记(二)
数组索引: 1.ndarray对象的内容可以通过索引或切片来访问和修改,与 Python 中 list 的切片操作一样: 由于数组可能是多维的,所以必须为数组的每个维度指定一个切片,使用切片时返回 ...
- python 安装 reportlab 报错 “ImportError: No module named reportlab.lib”
reportlab是什么? 是一个处理PDF和画图的python开源库. 初次安装: pip install reportlab 重新安装: pip install --upgrade --force ...
- homebrew 更改镜像,进行成功安装
在mac系统中,使用homebrew可以很方便的管理包.按照官网的说明执行以下命令时总是报错: /usr/bin/ruby -e "$(curl -fsSL https://raw.gith ...
- jQuery源码——.html()方法原理解析
在将字符串转化为html碎片时,一般会将字符串作为容器的innerHTML属性赋值.但innerHTML有很多局限性,比如我们想转化的字符串中有<script>标签并且包含一个立即执行的函 ...
- python+appium的物理按键代码
代码就一句driver.keyevent()括号内填入的是物理按键的数字代号 代号表: 电话键 KEYCODE_CALL 拨号键 5 KEYCODE_ENDCALL 挂机键 6 KEYCODE_HOM ...
- unittest单元测试框架
unittest单元测试框架 概述: 单元测试框架主要用来完成以下三件事: 提供用例组织与执行:当测试用例只有几条时,可以不必考虑用例的组织,但是当用例达到成百上千条时,大量的用例堆砌在一起,就产生了 ...
- 解决运行nodejs代码Error: listen EADDRINUSE
问题是什么 EADDRINUSE其实拆分来看就是error address use表示错误地址的使用,也代表着端口占用. 如何解决问题 那讲道理来说,接下来你就需要找到你要用的端口被哪一个进程所占用了 ...
- npm无响应处理办法
方法一:使用cnpm 1. 安装 `npm install cnpm -g` 2.设置使用淘宝镜像源 `npm install cnpm -g --registry=https://registry. ...


