文章目录

  • 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.联合文件系统

docker加载vhdx_容器

docker加载vhdx_运维_02

docker加载vhdx_ubuntu_03

2.commit命令

docker加载vhdx_docker加载vhdx_04

1.目前的ubuntu是不携带vim命令的

docker加载vhdx_运维_05

2.在容器内安装vim命令并提交给镜像
1.更新包管理器
apt-get update

docker加载vhdx_运维_06

2.安装vim
apt-get -y install vim

docker加载vhdx_docker_07

3.测试vim,可用了

docker加载vhdx_运维_08

3.将容器commit到我们的新镜像使其携带vim(在容器外执行)
docker commit -m="[提交的信息]" -a="[作者名字]" [ImageId] [名称:版本号]

docker加载vhdx_docker_09

docker加载vhdx_ubuntu_10

4.运行这个新镜像,的确有了vim

docker加载vhdx_ubuntu_11

3.本地镜像发送到阿里云
1.流程介绍

docker加载vhdx_docker加载vhdx_12

2.进入阿里云创建一个新的个人镜像仓库

https://cr.console.aliyun.com/cn-beijing/instance/new

docker加载vhdx_docker_13

docker加载vhdx_docker_14

3.创建一个命名空间,设置公开

docker加载vhdx_容器_15

4.选择一个命名空间,创建一个镜像仓库

docker加载vhdx_docker_16

docker加载vhdx_ubuntu_17

docker加载vhdx_docker加载vhdx_18

5.创建成功!

docker加载vhdx_运维_19

6.首先登录阿里云镜像仓库

docker加载vhdx_docker加载vhdx_20

docker login --username=aliyun80411328 registry.cn-beijing.aliyuncs.com

docker加载vhdx_docker加载vhdx_21

7.设置本地镜像
docker tag [ImageId] registry.cn-beijing.aliyuncs.com/sunxinheng/myuuntu3:[镜像版本号]

docker加载vhdx_运维_22

8.将本地镜像推送到阿里云镜像仓库
docker push registry.cn-beijing.aliyuncs.com/sunxiansheng/myubuntu1.3:[镜像版本号]

docker加载vhdx_ubuntu_23

9.将阿里云的镜像下载到本地
docker pull registry.cn-beijing.aliyuncs.com/sunxiansheng/myubuntu1.3:[镜像版本号]

docker加载vhdx_docker_24

docker加载vhdx_docker加载vhdx_25

4.docker私有库搭建
1.拉取仓库
docker pull registry

docker加载vhdx_运维_26

docker加载vhdx_docker_27

2.运行仓库的镜像,使用端口映射和目录挂载(目录会自动创建)
docker run -d -p 5000:5000 -v /sun/myregistry:/tmp/registry --privileged=true registry

docker加载vhdx_运维_28

3.为一个ubuntu镜像安装ifconfig
1.更新
apt-get update
2.安装ifconfig
apt-get install net-tools

docker加载vhdx_docker_29

3.测试使用

docker加载vhdx_容器_30

4.commit到一个新镜像(在容器外执行!)
docker commit -m="提交的信息" -a="作者名字" [ImageId] [名称:版本号]

docker加载vhdx_容器_31

5.curl查询私服库上有什么镜像
1.发送一个Get请求
curl -XGET http://ip:5000/v2/_catalog
2.没有反应,因为服务器的5000端口没开,开放后再次请求,目前是空的

docker加载vhdx_docker加载vhdx_32

6.将镜像修改为符合私服规范
1.格式
docker tag 镜像名 私有仓库ip:端口/镜像名
2.命令
docker tag haveifconfig:1.2 ip:5000/haveifconfig:1.2

docker加载vhdx_docker加载vhdx_33

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

docker加载vhdx_docker_34

docker加载vhdx_ubuntu_35

9.验证一下私有库是不是有这个镜像了
curl -XGET http://ip:5000/v2/_catalog

docker加载vhdx_容器_36

10.pull到本地运行
1.首先拉取镜像到本地
docker pull ip:5000/haveifconfig:1.2
2.运行镜像测试,成功!
docker run -it eb4e4c27f110 /bin/bash

docker加载vhdx_容器_37

2.容器数据卷(目录挂载)

1.基本介绍
1.坑:容器卷记得加入一个参数 --privileged=true

docker加载vhdx_ubuntu_38

2.容器数据卷示意图

docker加载vhdx_ubuntu_39

docker加载vhdx_运维_40

3.目录挂载的格式以及特点

docker加载vhdx_ubuntu_41

docker加载vhdx_docker_42

2.应用案例
1.格式说明
  • 宿主机目录会自动创建(前提是有权限)
docker run [-it/-d] --privileged=true -v /宿主机目录:/容器内目录 镜像名
2.启动ubuntu
docker run -it --privileged=true -v /tmp/host_data:/tmp/docker_data ubuntu

docker加载vhdx_docker加载vhdx_43

3.在/tmp/docker_data目录下创建一个文件

docker加载vhdx_容器_44

4.宿主机的/tmp/host_data内也会有这个文件

docker加载vhdx_运维_45

5.在主机上创建的文件也会同步到容器内部
6.查看容器内的详细信息,可以看到挂载情况
docker inspect 96ba75015eb8

docker加载vhdx_运维_46

docker加载vhdx_ubuntu_47

7.关于数据同步,即使容器关闭,在宿主机写入的文件等容器启动也会被自动同步!
3.容器卷的ro和rw规则
1.默认是rw,表示容器和宿主机都可读写
2.设置ro参数,表示容器内可读,宿主机可读可写

docker加载vhdx_docker加载vhdx_48

4.容器卷规则的继承
1.指定名字u1启动ubuntu并指定容器卷
docker run -it --privileged=true -v /tmp/host_data:/tmp/docker_data --name u1 ubuntu

docker加载vhdx_运维_49

2.u2继承u1的容器卷启动

docker加载vhdx_docker加载vhdx_50

docker run -it --privileged=true --volumes-from u1 --name u2 ubuntu

docker加载vhdx_容器_51