文章目录
- 1.Docker镜像
- 1.联合文件系统
- 2.commit命令
- 1.目前的ubuntu是不携带vim命令的
- 2.在容器内安装vim命令并提交给镜像
- 1.更新包管理器
- 2.安装vim
- 3.测试vim,可用了
- 3.将容器commit到我们的新镜像使其携带vim(在容器外执行)
- 4.运行这个新镜像,的确有了vim
- 3.本地镜像发送到阿里云
- 1.流程介绍
- 2.进入阿里云创建一个新的个人镜像仓库
- 3.创建一个命名空间,设置公开
- 4.选择一个命名空间,创建一个镜像仓库
- 5.创建成功!
- 6.首先登录阿里云镜像仓库
- 7.设置本地镜像
- 8.将本地镜像推送到阿里云镜像仓库
- 9.将阿里云的镜像下载到本地
- 4.docker私有库搭建
- 1.拉取仓库
- 2.运行仓库的镜像,使用端口映射和目录挂载(目录会自动创建)
- 3.为一个ubuntu镜像安装ifconfig
- 1.更新
- 2.安装ifconfig
- 3.测试使用
- 4.commit到一个新镜像(在容器外执行!)
- 5.curl查询私服库上有什么镜像
- 1.发送一个Get请求
- 2.没有反应,因为服务器的5000端口没开,开放后再次请求,目前是空的
- 6.将镜像修改为符合私服规范
- 1.格式
- 2.命令
- 7.配置/etc/docker/daemon.json使docker取消镜像加护(允许http的请求)
- 1.编辑文件
- 2.添加代码,记得前面有逗号
- 3.重启docker使其生效
- 4.重启一下docker的私有库
- 8.把本地的镜像推送到docker的私有库
- 9.验证一下私有库是不是有这个镜像了
- 10.pull到本地运行
- 1.首先拉取镜像到本地
- 2.运行镜像测试,成功!
- 2.容器数据卷(目录挂载)
- 1.基本介绍
- 1.坑:容器卷记得加入一个参数 --privileged=true
- 2.容器数据卷示意图
- 3.目录挂载的格式以及特点
- 2.应用案例
- 1.格式说明
- 2.启动ubuntu
- 3.在/tmp/docker_data目录下创建一个文件
- 4.宿主机的/tmp/host_data内也会有这个文件
- 5.在主机上创建的文件也会同步到容器内部
- 6.查看容器内的详细信息,可以看到挂载情况
- 7.关于数据同步,即使容器关闭,在宿主机写入的文件等容器启动也会被自动同步!
- 3.容器卷的ro和rw规则
- 1.默认是rw,表示容器和宿主机都可读写
- 2.设置ro参数,表示容器内可读,宿主机可读可写
- 4.容器卷规则的继承
- 1.指定名字u1启动ubuntu并指定容器卷
- 2.u2继承u1的容器卷启动
1.Docker镜像
1.联合文件系统
2.commit命令
1.目前的ubuntu是不携带vim命令的
2.在容器内安装vim命令并提交给镜像
1.更新包管理器
apt-get update
2.安装vim
apt-get -y install vim
3.测试vim,可用了
3.将容器commit到我们的新镜像使其携带vim(在容器外执行)
docker commit -m="[提交的信息]" -a="[作者名字]" [ImageId] [名称:版本号]
4.运行这个新镜像,的确有了vim
3.本地镜像发送到阿里云
1.流程介绍
2.进入阿里云创建一个新的个人镜像仓库
https://cr.console.aliyun.com/cn-beijing/instance/new
3.创建一个命名空间,设置公开
4.选择一个命名空间,创建一个镜像仓库
5.创建成功!
6.首先登录阿里云镜像仓库
docker login --username=aliyun80411328 registry.cn-beijing.aliyuncs.com
7.设置本地镜像
docker tag [ImageId] registry.cn-beijing.aliyuncs.com/sunxinheng/myuuntu3:[镜像版本号]
8.将本地镜像推送到阿里云镜像仓库
docker push registry.cn-beijing.aliyuncs.com/sunxiansheng/myubuntu1.3:[镜像版本号]
9.将阿里云的镜像下载到本地
docker pull registry.cn-beijing.aliyuncs.com/sunxiansheng/myubuntu1.3:[镜像版本号]
4.docker私有库搭建
1.拉取仓库
docker pull registry
2.运行仓库的镜像,使用端口映射和目录挂载(目录会自动创建)
docker run -d -p 5000:5000 -v /sun/myregistry:/tmp/registry --privileged=true registry
3.为一个ubuntu镜像安装ifconfig
1.更新
apt-get update
2.安装ifconfig
apt-get install net-tools
3.测试使用
4.commit到一个新镜像(在容器外执行!)
docker commit -m="提交的信息" -a="作者名字" [ImageId] [名称:版本号]
5.curl查询私服库上有什么镜像
1.发送一个Get请求
curl -XGET http://ip:5000/v2/_catalog
2.没有反应,因为服务器的5000端口没开,开放后再次请求,目前是空的
6.将镜像修改为符合私服规范
1.格式
docker tag 镜像名 私有仓库ip:端口/镜像名
2.命令
docker tag haveifconfig:1.2 ip:5000/haveifconfig:1.2
7.配置/etc/docker/daemon.json使docker取消镜像加护(允许http的请求)
1.编辑文件
vim /etc/docker/daemon.json
2.添加代码,记得前面有逗号
"insecure-registries" : ["私有仓库ip:私有仓库端口"]
"insecure-registries" : ["ip:5000"]
3.重启docker使其生效
systemctl restart docker && systemctl status docker
4.重启一下docker的私有库
docker run -d -p 5000:5000 -v /sun/myregistry:/tmp/registry --privileged=true registry
8.把本地的镜像推送到docker的私有库
docker push ip:5000/haveifconfig:1.2
9.验证一下私有库是不是有这个镜像了
curl -XGET http://ip:5000/v2/_catalog
10.pull到本地运行
1.首先拉取镜像到本地
docker pull ip:5000/haveifconfig:1.2
2.运行镜像测试,成功!
docker run -it eb4e4c27f110 /bin/bash
2.容器数据卷(目录挂载)
1.基本介绍
1.坑:容器卷记得加入一个参数 --privileged=true
2.容器数据卷示意图
3.目录挂载的格式以及特点
2.应用案例
1.格式说明
- 宿主机目录会自动创建(前提是有权限)
docker run [-it/-d] --privileged=true -v /宿主机目录:/容器内目录 镜像名
2.启动ubuntu
docker run -it --privileged=true -v /tmp/host_data:/tmp/docker_data ubuntu
3.在/tmp/docker_data目录下创建一个文件
4.宿主机的/tmp/host_data内也会有这个文件
5.在主机上创建的文件也会同步到容器内部
6.查看容器内的详细信息,可以看到挂载情况
docker inspect 96ba75015eb8
7.关于数据同步,即使容器关闭,在宿主机写入的文件等容器启动也会被自动同步!
3.容器卷的ro和rw规则
1.默认是rw,表示容器和宿主机都可读写
2.设置ro参数,表示容器内可读,宿主机可读可写
4.容器卷规则的继承
1.指定名字u1启动ubuntu并指定容器卷
docker run -it --privileged=true -v /tmp/host_data:/tmp/docker_data --name u1 ubuntu
2.u2继承u1的容器卷启动
docker run -it --privileged=true --volumes-from u1 --name u2 ubuntu