云计算学习100天-第72天-容器docker1
目录
容器
概念
容器:一个运行在隔离环境中的程序
docker:
一种封装系统的轻量级虚拟化
以应用为核心,对程序文件、运行时环境、软件依赖包都可以封装打包、部署的技术手段
容器中没有系统
2015年制定了OCI——开放容器交互标准
服务:docker
安装包:docker-ce
配置文件:/etc/docker/daemon.json
{
"registry-mirrors":["镜像仓库地址"],
"insecure-registries":["本机仓库地址"]
}
镜像:
只读模板,包含了创建容器所需的所有文件和配置信息
可以从官方镜像仓库下载:hub.docker.com(中国无法访问)
可以自己制作镜像
创建容器的核心
使用COW技术
采用分层设计
镜像始终都是只读
仓库——用来存储、分发、管理镜像的地方
COW——Copy On Write 写时拷贝技术
使用指针指向原始盘所有块
若一个块要被改写,首先把数据从原始盘拷贝到前端盘,然后在前端盘进行改写,最后把数据指针指向改写过的数据
原始盘始终式只读的
上帝进程——
系统创建之初产生的第一个进程 一般是systemd
PID==1
所有程序的根进程
上帝进程死亡则系统也就关闭了
容器的上帝进程——
容器的启动进程就是上帝进程
如果容器的启动进程关闭等同于容器关闭
上帝进程无法在后台执行
容器启动进程必须放在前台
docker命令
查看服务器与客户端的版本信息
docker version
查看服务的配置文件
docker info
查看本地镜像的名称和标签
docker images
查看本地主机上的所有镜像
docker images list
从镜像仓库下载一个镜像到本地
docker pull 镜像名称:标签
把镜像导出为一个tar文件
docker save 镜像名称:标签 -o 文件名
从文件导入镜像
docker load -i 备份文件名
查看镜像的分层信息
docker history 镜像名称:标签
创建容器
docker run [选项] 镜像名称:容器名称
选项:
-i 交互式
-t 分配终端
-d 后台运行
--name 容器名字
-rm 容器结束后自动删除
ctrl-p + ctrl -q 转入后台快捷键
查看容器的信息
docker ps [选项]
-a 显示所有容器
-q 只显示id
查询(容器/镜像)的详细信息
docker inspect 镜像名称|容器名称
启动、停止、重启容器
docker [start|srop|restart] 容器id
在容器内执行命令
docker exec -it 容器ID 解释器
查看容器日志
docker logs 容器ID
拷贝文件:路径格式(本机路径、容器ID/路径)
docker cp 路径1 路径2
上传
docker cp 本机路径 容器ID:容器内路径
下载
docker cp 容器ID:容器内路径 本机路径
删除容器
docker rm [选项] 容器ID
-f 强制删除
删除所有容器
docker rm -f $(docker ps -aq)
创建新的镜像名称和标签
docker tag 镜像ID:标签 镜像名称:新的标签
删除镜像(必须先删除该镜像启动的所有容器)
docker rmi 镜像名称:标签
把容器制作成镜像
docker commit 容器名称 镜像名称:标签
其他命令
同步文件
rsync [选项] 本地目录 远程IP:远程目录
-a 归档模式
-v 详细模式
开启路由转发
sysctl net.ipv4.ip_forward
以前台进程运行httpd服务
/usr/sbin/httpd -DFOREGROUND
httpd就是容器的上帝进程
容器启动进程必须放在前台
启动后如果ctrl+c退出就说明容器进程结束了
镜像
简单制作镜像主要步骤:
1、制作容器
2、拷贝真机的yum配置文件到容器
3、在容器内安装软件包并清空缓存
4、停止容器
5、根据容器制作镜像
这时用新的镜像新建容器后,新容器里有前面安装的软件包
更多推荐
所有评论(0)