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

原文地址:https://www.cnblogs.com/jmcui/p/9354852.html

时间: 2024-10-07 08:00:45

Docker 系列三(容器管理).的相关文章

Docker背后的容器管理——Libcontainer深度解析

Libcontainer 是Docker中用于容器管理的包,它基于Go语言实现,通过管理namespaces.cgroups.capabilities以及文件系统来进行容器控制.你可以使用Libcontainer创建容器,并对容器进行生命周期管理. 容器是一个可管理的执行环境,与主机系统共享内核,可与系统中的其他容器进行隔离. 在2013年Docker刚发布的时候,它是一款基于LXC的开源容器管理引擎.把LXC复杂的容器创建与使用方式简化为Docker自己的一套命令体系.随着Docker的不断发

Docker 镜像与容器管理(2)

title: Docker 镜像与容器管理(2) date: 2018-12-14 17:04:05 tags: Docker categories: Docker copyright: true --- Docker是基于Go语言实现的开源容器项目,Docker让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何接口,Docker诞生于2013年年初,最初发起者是dotCloud公司.D

Docker入门二:容器管理

Docker入门二:容器管理 LinuxDocker time: 2019-12-3 容器管理 docker常用命令 注: 命令中的CONTAINER,可以是conainer_id,也可以是container name docker system info # 查看docker系统信息 docker container ls -a 查看当前已经创建的container docker container ls: -a 显示所有容器 -q 仅显示ID -s 显示container的文件大小 快速启动

DOCKER学习_002:Docker的镜像容器管理

一 Docker的基本信息 前面已经安装了Docker,现在看一下已安装Docker的安装环境以及其他信息 1.1 系统环境 [[email protected] ~]# uname -r 3.10.0-957.27.2.el7.x86_64 [[email protected]-server3 ~]# cat /etc/redhat-release CentOS Linux release 7.7.1908 (Core) 1.2 Docker版本 [[email protected] ~]#

Docker系列(三)常用命令

命令说明 docker pull 格式: docke pull [OPTIONS] NAME[:TAG] 作用:下载名称为 name 的镜像 例子: sudo docker pull dl.dockerpool.com:5000/ubuntu:12.04 说明: 从 dl.dockerpool.com:5000 中下载TAG值为12.04的ubuntu镜像,省略dl.dockerpool.com:5000时,将默认从registry.hub.docker.com下载镜像. docker comm

docker镜像、容器管理

Docker优势 1) 更高效的利用系统资源 无论是应用执行速度.内存损耗或者文件存储速度,都要比传 统虚拟机技术更高效. 2)更快速的启动时间 Docker 容器应用,由于直接 运行于宿主内核,无需启动完整的操作系统,因此可以做到秒级.甚至毫秒级的启 动时间. 3)一致的运行环境 Docker 的镜像提供了除内核外完整的运行时环境,确保了应用运行环境一致性 4)持续交付和部署 使用 Docker 可以通过定制应用镜像来实现持续集成.持续交付.部署. 二:为什么要使用Docker 不仅仅开发团队

docker镜像与容器管理(二)

镜像: 静态的只读文件,是一个只读的模板. 容器: 是从镜像创建的一个运行实例,容器是带有运行时需要的可写文件层. 镜像工作原理:     启动一个新的容器时,docker会加载镜像,在镜像之上添加一个读写层,     并将镜像中的目录复制一份到/var/lib/docker/containers/容器ID的目录下,     容器内修改已存在的文件,会将该文件从只读层复制到读写层,并覆盖只读层的文件,实现了文件系统隔离,     当删除容器后,读写层的数据将会删除,镜像不变. 镜像文件存储:  

Docker之二容器管理

Docker 容器 容器是 Docker 又一核心概念. 简单的说,容器是独立运行的一个或一组应用,以及它们的运行态环境.对应的,虚拟机可以理解为模拟运行的一整套操作系统(提供了运行态环境和其他系统环境)和跑在上面的应用. 启动容器 所需要的命令主要为 docker run 如图所示我启动一个容器并执行/bin/ls #dockerrun centos-sshd:v1 /bin/ls sudo docker run -t -i centos-sshd:v1/bin/bash 其中, -t 选项让

docker之docker-compose——容器管理

nginx镜像制作实战 docker容器的主业 docker理念里,容器启动时,应当为它指定主业是什么,如nginx容器主业就是nginx代理服务,tomcat容器就是web服务等等 1.容器创建时,必须指定主业任务,如不指定,则容器无事可干立即退出. 2.在dockerfile打包镜像时,可以使用cmd命令来指定一个默认的主业,如下: 3.既然镜像里是默认主业,即意味着创建容器时,可以覆盖此默认命令,如下 推荐的ENTRYPOINT方式 1.镜像本身应该有稳定的主业,应当指定后即不能更改用途,