一 自定义镜像与仓库
自定义镜像:使用镜像启动容器,在该容器上进行修改
另存为一个镜像
打包
Docker commit dslks2112 myos
Docker history myos
步骤一:使用镜像启动容器
1)在该容器基础上修改yum源
[root@docker1 docker_images]# docker run -it docker.io/centos
[root@8d07ecd7e345 /]# rm -rf /etc/yum.repos.d/*
[root@8d07ecd7e345 /]# vi /etc/yum.repos.d/dvd.repo
[dvd]
name=dvd
baseurl=ftp://192.168.1.254/system
enabled=1
gpgcheck=0
[root@8d07ecd7e345 /]# yum clean all
[root@8d07ecd7e345 /]# yum repolist
2)安装测试软件
[root@8d07ecd7e345 /]# yum -y install net-tools iproute psmisc vim-enhanced
3)ifconfig查看
[root@8d07ecd7e345 /]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>
[root@8d07ecd7e345 /]# exit
exit
步骤二:另存为另外一个镜像
1)创建新建镜像
[root@docker1 docker_images]# docker start 8d07ecd7e345
//可以简写为8d,要保证唯一性
8d07ecd7e345
[root@docker1 docker_images]# docker commit 8d07ecd7e345 docker.io/myos:latest
sha256:ac3f9c2e8c7e13db183636821783f997890029d687
二 使用DockFile 文件创建一个新镜像
Mkdir build
Cd build
Touch Dockerfile
Vim Dockfile
FROM docker.io/centos:latest
RUN Rm -rf /etc/yum .repos.d/*repo
ADD rr.repo /etc/yum.repos.d/local.repo
RUN Yum -y install net-tools vim psmisc iproute
Docker build -t test:latest . ADD
二 自定义镜像仓库
Registy基本概念:
共享的一台服务器:镜像化的一台服务器
1 安装私有仓库:
yum -y install docker-distribution.x86_64
systemctl start docker-distribution
systemctl enable docker-distribution
2 客户端配置:docker 1 docker2 都需要配置
vim /etc/sysconfig/docker
13 /24 添加 :192.168.1.30:5000
systemctl restart docker
仓库配置文件 :/etc/docker-distribution/registry/config.yml
/var/lib/registry
3 docker1 上传镜像
Docker tag docker.io/busybox:latest 192.168.1.30:5000/busybox:latest
Docker push 192.168.1.30:5000/busybox:latest
docker tag docker.io/myos:latest 192.168.1.30:5000/myos:latest
docker images
docker push 192.168.1.30:5000/myos:latest
Docker2 启动镜像:
[root@docker2 ~]# docker run -it 192.168.1.30:5000/
5000/busybox 5000/myos
5000/busybox:latest 5000/myos:latest
查看私有镜像仓库的镜像名称:curl http://192.168.1.30:5000/v2/_catalog
查看某一仓库标签:curl http://192.168.1.30:5000/v2//tags/list
私有仓库数据存储目录:/var/lib/registry
三 持久化存储
卷的概念
1 Docker容器不保存任何数据
2 重要数据请使用外部卷存储实现持久化 比如:ceph GluFster
3 容器可以挂载真是急目录或者共享存储为卷
主机卷的映射
:将真实机目录挂载到容器中提供持久化存储
1目录不存在会自动创建
2 目录存在会直接覆盖掉
Docker run -v /data:/data -it docker.io/centos bash
**************************************************************8
四 共享存储
共享存储基本概念
1一台共享存储服务器可以提供给所有Docker主机使用
2共享存储服务器有(DAS NAS SAN )
实现步骤
使用NFS 创建共享存储服务器
客户端挂载NFS共享,并最终映射到容器中
NFS主机操作192.168.1.254
服务器共享目录:
Yum -y install nfs-utils
Vim /etc/exports
Systemctl start nfs
Dcoker 主机操作 192.168.1.30 192.168.1.31
Mount 挂载共享
运行容器时,使用-v选项映射磁盘到容器中
五 网络架构
查看默认docker 创建的网络模型
Dicker network list
新建docker 网络模型
Docker Network create --subnet =10.10.10.0/24 docker1
使用自定义网桥
Docker rum -it --network=docker1 myos
- 默认容器可以访问外网
- 但是外部的网络主机不可以访问容器内的资源
- 容器的特征是可以吧宿主主机变成对应的服务
我们可以使用-p参数吧容器的端口和宿主机端口进行绑定
-p 宿主机端口:容器端口
把docker1 变成httpd
Docker run -itd -p 80:80 docker.io/myos:httpd
把docker1 变成nginx
Docker run 0itd -p 80:80 docker.io/nginx:latest