10.1 创建docker 静态化IP
10.2 创建docker 私有化仓库
10.3 使用阿里云私有仓库存储自己的docker镜像
10.1 创建docker静态化IP
1.Docker 有以下四种网络模式
host模式 使用--net =host 指定
container 模式 ,使用 --net=container:NAME_or_ID 指定
none 模式,使用 --net=none 指定
bridge 模式,使用 --net=bridge 指定,默认设置
默认选择bridge 的情况下,启动启动后通过DHCP 获取一个地址,不是我们想要的,在centos7系统上,docker 环境下,可以使用pipework 脚本对容器分配固定ip, 这个IP和物理机同同网段IP
10.1.2 配置桥接网络
桥接本地物理网络的目录,是为了局域网内用户方便访问docker 实例服务,不需要各种端口映射,即可访问,但是这样做又违背了docker 容器的安全隔离的原则,工作中辩证的选择
桥接 设备
安装包
1 )[root@xuegod6 ~]# mount /dev/sr0 /mnt/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@xuegod6 ~]# rpm -ivh /mnt/Packages/bridge-utils-1.5-9.el7.x86_64.rpm
2 ) 把ens33 帮到br0 桥接上
root@xuegod6 network-scripts]# cp ifcfg-ens33 /opt/
重启网卡 systemctl restart network
ifconfig
10.1.3 下载pipework 包
[root@xuegod6 pipework-master]# which pipework
/usr/local/bin/pipework
[root@xuegod6 pipework-master]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@xuegod6 ~]# systemctl restart docker
10.1.4 使用静态IP启动一个docker 实例
例1: 以none模式 使用--net=none 启动容器,并且开机docker 特权模式
[root@xuegod6 ~]# docker run -itd --net=none --privileged=true docker.io/centos bash
53d535e41349f0059fac1a8d7c479b512aab951d566e9473c704f4f5999af540
在后台运行
在没有开启的镜像执行
[root@xuegod6 ~]# docker run -it docker.io/centos:httpd bash
[root@xuegod6 ~]# docker run -it --privileged docker.io/centos:latest bash
[root@30c612c97ab5 /]# ls /dev/sda 发现能使用了
/dev/sda
[root@30c612c97ab5 /]# ls /dev/
agpgart dmmidi lp0 oldmem shm tty14 tty27 tty4 tty52 tty8 vcs2 vhci
autofs dri lp1
[root@30c612c97ab5 /]# mount /dev/sda
sda sda1 sda2 sda3
[root@30c612c97ab5 /]# mount /dev/sda1 /opt/ 挂载成功
[root@30c612c97ab5 /]#
给docker 配置ip
[root@xuegod6 ~]# pipework br0 30c612c97ab5 192.168.43.88/24@192.168.43.1
[root@xuegod6 ~]# ping 192.168.43.88
PING 192.168.43.88 (192.168.43.88) 56(84) bytes of data.
64 bytes from 192.168.43.88: icmp_seq=1 ttl=64 time=0.181 ms
接着配置ip
进入docker
[root@xuegod6 ~]# docker exec -it 30c612c97ab5 bash
[root@30c612c97ab5 /]# ls
安装工具包 yum install -y net-tools
实战1 使用静态IP启动一个web 服务器
yum install httpd -y
httpd 直接运行httpd 命令
cd /var/www/html/
echo aaaaaaaaaa> index.html
10.2 docker 私有仓库 Docker Hub 这样的公共仓库可能不方便, 有时候无法访问, 用户可以创建规本地仓库给私人使用,这里使用的官方提供的工具docker-resistry 来配置私有库
1 使用官方提供的工具来配置
docker -registry 是官方提供的工具,可以用于构建私有的镜像仓库
私有仓库的好处
1 节约带宽
2 可以字节定制系统
docker-registry 这个工具镜像,直接下载并安装registry 镜像启动docker实例就可以了
有了 docker 以后,所有软件不再以office.exe 或lrzsz.rpm 形式发布,以docker 镜像发布,当安装软件并运行,就是指,下载docker 镜像并运行一个docker 实例
10。2.1 配置xuegod6 为docker 私有仓库
[root@xuegod6 ~]# systemctl stop firewalld
[root@xuegod6 ~]# systemctl disable firewalld
iptables -L -n
1 不能关闭防火墙 ,因为docker 后期端口转发,需要使用firewalld
启动docker
systemctl start docker
拉取镜像 registry 镜像中包包括搭建本地私有仓库的软件
下载registry 上传到linux
[root@xuegod6 ~]# docker load -i registry.tar
3 查看registry 镜像
4.从Docker HUB 上拉取一个镜像测试
方法一,本地导入
上传busybox.tar 镜像到linux服务器,作为测试镜像
[root@xuegod6 ~]# docker load -i busybox.tar
5 创建镜像连接或为基础镜像打连接
删除 docker rmi 名字或者ID
语法: docker tag 镜像名: 标签 私有仓库地址/ 镜像名 : 标签
[root@xuegod6 ~]# docker tag docker.io/registry:latest 192.168.43.99:5000/busybox:latest
6修改docker 配置文件,指定私有仓库url
[root@xuegod6 ~]# vim /etc/sysconfig/docker
增加一行--insecure-registry 192.168.43.99:5000'
7 启动docker 使用registry 镜像搭建一个私有仓库
使用registry 镜像搭建一个私有仓库,registry 镜像中已经把搭建私有仓库安装好了看,我只需要使用registry 镜像运行一个docker镜像运行一个docker实例就可以了
[root@xuegod6 ~]# docker run -d -p 5000:5000 -v /opt/registry:/var/lib/registry registry
e78fe86d80ac7d488265c8a39029647654827d828d28680f8698a8a95f2efd4e
[root@xuegod6 ~]# netstat -tlunp | grep 5000
tcp6 0 0 :::5000 :::*
8 将刚大奥标签的192.168.43.5000/busybox 镜像,push 到本地私有仓库 中
[root@xuegod6 ~]# docker push 192.168.43.99:5000/busybox
The push refers to a repository [192.168.43.99:5000/busybox]
0912b310db10: Pushed
6767cac03a2d: Pushed
f38182d44088: Pushed
b5aac7bb5fdf: Pushed
9f8566ee5135: Pushed
latest: digest: sha256:34a11c6d3cdbfc018525356019d27df8da63459c3d4d50afcd71a7c82afe8cc5 size: 1364
安装tree 命令查看
[root@xuegod6 ~]# mount /dev/sr0 /mnt/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@xuegod6 ~]# rpm -ivh /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm
测试 把docker rpm 上传到linux
scp -r docker-rpm 192.168.24.:/root/
[root@xuegod6 ~]# scp /etc/yum.repos.d/docker-rpm.repo 192.168.24.65:/etc/yum.repos.d/
[root@xuegod5 docker-rpm]# mount /dev/sr0 /mnt/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@xuegod5 docker-rpm]# rpm -ivh *.rpm
安装docker
yum install docker -y
2 修改配置文件,指定docker 源为指定url 仓库:私有仓库的地址
[root@xuegod6 ~]# vim /etc/sysconfig/docker
增加一行--insecure-registry 192.168.43.99:5000'
3 启动docker systemctl restart docker
root@xuegod5 ~]# systemctl restart docker
4 开始下载镜像
[root@xuegod5 ~]# cd docker-rpm/
[root@xuegod5 docker-rpm]# docker pull 192.168.43.99:5000/busybox
Using default tag: latest
Trying to pull repository 192.168.43.99:5000/busybox ...
latest: Pulling from 192.168.43.99:5000/busybox
53478ce18e19: Pull complete
907370c150a1: Pull complete
ecd89ee27260: Pull complete
e4d3e6950197: Pull complete
a0c226b30c4f: Pull complete
[root@xuegod5 docker-rpm]# docker run 192.168.43.99:5000/busybox echo "echo hellowold"
echo hellowold
修改实例名称复制一个镜像
删除镜像
[root@xuegod5 docker-rpm]# docker rmi 192.168.43.99:5000/busybox
Untagged: 192.168.43.99:5000/busybox:latest
Untagged: 192.168.43.99:5000/busybox@sha256:34a11c6d3cdbfc018525356019d27df8da63459c3d4d50afcd71a7c82afe8cc5
[root@xuegod5 docker-rpm]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
busybox v1 047218491f8c
实战3:使用阿里云的docker 私有仓库
创建成功
1 )
[root@xuegod5 docker-rpm]# sudo docker login --username=白马湖糟老头子 registry.cn-hangzhou.aliyuncs.com
Password:
Login Succeeded
2 )
必须打上标签
[root@xuegod5 docker-rpm]# docker tag busybox:v1 registry.cn-hangzhou.aliyuncs.com/zhumiaoshun/xuegoddocker:v1
拉取 sudo docker push registry.cn-hangzhou.aliyuncs.com/zhumiaoshun/xuegoddocker:[镜像版本号]
3 ) 开始推了
[root@xuegod5 docker-rpm]# docker push registry.cn-hangzhou.aliyuncs.com/zhumiaoshun/xuegoddocker:v1
多出了阿里云镜像
[root@xuegod5 docker-rpm]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
busybox v1 047218491f8c 3 years ago 33.2 MB
registry.cn-hangzhou.aliyuncs.com/zhumiaoshun/xuegoddocker v1
删除镜像
[root@xuegod5 docker-rpm]# docker rmi registry.cn-hangzhou.aliyuncs.com/zhumiaoshun/xuegoddocker:v1
拉取成功
[root@xuegod5 docker-rpm]# docker pull registry.cn-hangzhou.aliyuncs.com/zhumiaoshun/xuegoddocker:v1
Trying to pull repository registry.cn-hangzhou.aliyuncs.com/zhumiaoshun/xuegoddocker ...
v1: Pulling from registry.cn-hangzhou.aliyuncs.com/zhumiaoshun/xuegoddocker
Digest: sha256:34a11c6d3cdbfc018525356019d27df8da63459c3d4d50afcd71a7c82afe8cc5
Status: Downloaded newer image for registry.cn-hangzhou.aliyuncs.com/zhumiaoshun/xuegoddocker:v1