docker的dockerfile和网络层和私有仓库的安装

2019-07-31  本文已影响0人  不知道就

一、 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

上一篇下一篇

猜你喜欢

热点阅读