Docker 系列三(容器管理).

一、运行容器

    1、基于镜像新建一个容器并启动

docker run -it  --rm -d -p 8888:8080 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]

二、操作容器

    1、查看容器列表

#列出运行中的容器
docker ps
docker container ls
#列出所有容器(包含终止状态)
docker ps -a
docker container ls -a

    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 rm -f [CONTAINER ID]

    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 — 从入门到实践》

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏腾讯云实验室

搭建 Docker 环境

腾讯云提供了开发者实验室帮助用户搭建 Docker 环境,教程内容如下,用户可以点击开发者实验室快速上机完成实验。

3569
来自专栏测试驿栈

Docker基础操作

   Docker是一个虚拟环境容器,可以将你的环境、代码、配置文件等一并打包到这个容器中,并发布和应用到任意平台中。比如,你在本地部署了git,jenkins...

1443
来自专栏点滴积累

Docker存储

前言 上一篇文章中简单总结了一下docke的基础使用方法,这次我来总结一下有关docker存储方面的相关知识。本文同样建立在CloudMan的系列教程之上,有兴...

4274
来自专栏你不就像风一样

史上最全面的Docker构建工具使用教程

Docker 是一个开源的应用容器引擎,基于 Go 语言] 并遵从Apache2.0协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可...

1732
来自专栏人工智能

发现Docker的IP地址

我们使用Eclipse Che在Docker上编写了很多实用程序。它们占用空间小,便于携带,可以在许多不同的操作系统上运行,而无需用户安装额外的软件。

2810
来自专栏西安-晁州

Docker学习之Docker容器基本使用

Docker学习之Docker容器基本使用 新建容器并启动 命令格式:docker run --options repository:tag 后台运行 命令格式...

3558
来自专栏北京马哥教育

Docker常用命令汇总

一、查看docker信息 1、查看docker版本 docker version 2、显示docker系统的信息 docker info 二、对image的...

3579
来自专栏编程坑太多

跟我一起学docker(四)--容器的常用操作

1483
来自专栏Laoqi's Linux运维专列

Docker Compose 部署服务

1806
来自专栏技术之路

Docker实践--部署Nodejs应用

  这个例子的目标是为了向大家展示如何在Docker的container里运行Node.js程序。我会先创建一个简单的Node.js web app,来构建一个...

3298

扫码关注云+社区

领取腾讯云代金券