Docker实战系列【容器详解】
容器
容器是镜像的运行时实例。正如从虚拟机模板上启动 VM 一样,用户也同样可以从单个镜像上启动一个或多个容器。
虚拟机和容器最大的区别是容器更快并且更轻量级——与虚拟机运行在完整的操作系统之上相比,容器会共享其所在主机的操作系统/内核。
下图为使用单个 Docker 镜像启动多个容器的示意图。
容器相关命令
查看容器:docker ps -a
查看所有的容器的详细信息
启动容器: docker run -it/d --name [container_name] <image_name> /bin/bash
启动新容器的命令。会创建一个容器,而命令则是希望容器运行的应用。
参数说明:
-i: 交互式操作。
-t: 终端。
-d:后台运行
image: 镜像。
/bin/bash:放在 镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。
--restart:重启策略。通常建议在运行容器时配置好重启策略。这是容器的一种自我修复能力,可以在指定事件或者错误后重启来完成自我修复。
容器支持的重启策略包括 always、unless-stopped 和 on-failed。
要退出终端,直接输入 exit:
运行容器:docker start [container_id/name]
启动一个已停止的容器
重启容器:docker restart [container_id/name]
重启一个容器
关闭容器:docker stop [container_id/name]
停止一个运行中的容器
删除容器:docker rm [-f] [container_id/name]
删除一个容器,如果一个容器运行中需要加-f
进入容器:docker exec -it [container_id/name] /bin/bash
进入容器终端,使用shell命令操作容器
提交容器:docker commit -m "改动信息" -a "作者" [container_id/name] [new_image:tag]
提交一个容器为一个新的镜像
容器日志:docker log
查看一个容器的日志
容器属性: docker inspect [container_id/name]
查看一个容器的属性信息
容器与数据管理
docker的镜像是只读的,虽然依据镜像创建的容器可以进行操作,但是我们不能将数据保存到容器中,因为容器会随时关闭和开启
解决方案就是:数据卷和数据卷容器
数据卷
将宿主机目录中的某个目录,映射到容器中,作为数据存储的目录
docker run -it --name [容器名字] -v [宿主机文件目录] :[容器文件目录] [镜像名称]
注意:
-v [宿主机文件目录] :[容器文件目录] 可以存在多个,表示同时挂载多个
数据卷容器
将宿主机目录,使用容器的方式来表示,然后其他的应用容器将数据保存在这个容器中,达到大批量数据同时存储的目的
# 创建数据卷容器
docker create -v [宿主机文件目录] :[容器文件目录] --name [容器名称] [镜像名称] [命令可选]
#使用数据卷容器
docker run --volumes-from [数据卷容器的名字/di] -d --name [容器名称] [镜像名称] [命令(可选)]
容器数据备份
创建备份目录
mkdir /backup/
创建数据卷容器
docker create -v /data --name v-test nginx
创建备份容器,执行备份命令后自动删除
docker run --rm --volumes-from 4648597c7d98g7 -v /backup:/backup nginx tar zcf /backup/data.tar.gz /data
验证
# 宿主机
ls /backup
容器数据还原
假设容器内数据被清除
rm -f /data/*
用宿主机的/data数据还原容器/data
docker run --rm --volumes-from 4648597c7d98g7 -v /backup:/backup nginx tar xf /backup/data.tar.gz -C /
验证
# 容器
ls /data
- 点赞
- 收藏
- 关注作者
评论(0)