一、 dockerfile
类似ansible剧本,大小几kb 手动做镜像:大小几百M+dockerfile 支持自定义容器的初始命令dockerfile主要组成部分: 基础镜像信息 FROM centos:6.9 制作镜像操作指令 RUN yum install openssh-server -y容器启动时执行指令 CMD ["/bin/bash"] dockerfile常用指令:13:docker镜像的分层(kvm 链接克隆,写时复制的特性) FROM 这个镜像的妈妈是谁?(指定基础镜像) MAINTAINER 告诉别人,谁负责养它?(指定维护者信息,可以没有) LABLE 描述,标签 RUN 你想让它干啥(在命令前面加上RUN即可) ADD 给它点创业资金(会自动解压tar) 制作docker基础的系统镜像 WORKDIR 我是cd,今天刚化了妆(设置当前工作目录) VOLUME 给它一个存放行李的地方(设置卷,挂载主机目录) EXPOSE 它要打开的门是啥(指定对外的端口)(-P 随机端口) CMD 奔跑吧,兄弟!(指定容器启动后的要干的事情)(容易被替换) dockerfile其他指令: COPY 复制文件(不会解压)rootfs.tar.gz ENV 环境变量 ENTRYPOINT 容器启动后执行的命令(无法被替换,启容器的时候指定的命令,会被当成参数)
二、Docker网络类型
1)、macvlan
默认一个物理网卡,只有一个物理mac地址,虚拟多个mac地址 ##创建macvlan网络 docker network create --driver macvlan --subnet 10.0.0.0/24 --gateway 10.0.0.254 -o parent=eth0 macvlan_1 ##设置eth0的网卡为混杂模式 ip link set eth1 promisc on ##创建使用macvlan网络的容 器 docker run -it --network macvlan_1 --ip=10.0.0.200 busybox
2)、overlay
http://www.cnblogs.com/CloudMan6/p/7270551.html
###这是个docker的overlay网络实验
待补。。。。。
三、docker registry(私有仓库)
普通的registry
docker run -d -p 5000:5000 --restart=always --name registry -v /opt/myregistry:/var/lib/registry registry
上传镜像到私有仓库: a:给镜像打标签 docker tag centos6-sshd:v3 10.0.0.11:5000/centos6-sshd:v3 b:上传镜像 docker push 10.0.0.11:5000/centos6-sshd:v3
docker run -d 10.0.0.11:5000/centos6-sshd:v3 如果遇到报错: The push refers to repository [10.0.0.11:5000/centos6.9_ssh] Get https://10.0.0.11:5000/v2/: http: server gave HTTP response to HTTPS client 解决方法: vim /etc/docker/daemon.json { "insecure-registries": ["10.0.0.11:5000"] } systemctl restart docker
带basic认证的registry
yum install httpd-tools -y mkdir /opt/registry-var/auth/ -p htpasswd -Bbn oldboy 123456 >>/opt/registryvar/auth/htpasswd
docker run -d -p 5000:5000 --restart=always -v /opt/registry-var/auth/:/auth/ -v /opt/myregistry:/var/lib/registry -e "REGISTRY_AUTH=htpasswd" -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" -e "REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd" registry
--restart=always ###这个是设置开机自启动的 (如果你想在已经创建的docker容器做开机自启动 就用如下命令: docker update --restart=always 这必须写你的容器名字或者ID号)
docker企业级镜像仓库harbor(vmware 中国团队)
第一步:安装docker和docker-compose 第二步:下载harbor-offline-installer-v1.3.0.tgz 第三步:上传到/opt,并解压 第四步:修改harbor.cfg配置文件 hostname = 10.0.0.11 harbor_admin_password = 123456 第五步:执行install.sh