赞
踩
YAML 是一种标记语言,它可以很直观的展示数据序列化格式,可读性高。类似于 XML数据描述语言,语法比 XML 简单的很多。YAML 数据结构通过缩进来表示,连续的项目通过减号来表示,键值对用冒号分隔,数组用中括号 [ ] 括起来, hash 用花括号 { } 括起来。
使用 YAML 时需要注意下面事项:
| 对象 | 键值对的集合 |
|---|---|
| 数组 | 一组按次序排列的值,又称序列 |
| 纯量 | 单个的,不可再分的值 |
#下载
curl -L https://github.com/docker/compose/releases/download/1.21.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
#或者已下载过直接从宿主机传入到/opt目录下
rz -y
mv docker-compose/usr/local/bin/
#安装
chmod +x /usr/local/bin/docker-compose
#查看版本
docker-compose --version
| 字段 | 说明 |
|---|---|
| build | 指定 Dockerfile 文件名,要指定Dockerfile文件需要在build标签的子级标签中使用dockerfile标签指定 |
| dockerfile | 构建镜像上下文路径 |
| context | 可以是 dockerfile 的路径,或者是指向 git 仓库的 url 地址 |
| image | 指定镜像 |
| command | 执行命令,覆盖容器启动后默认执行的命令 |
| container_name | 指定容器名称,由于容器名称是唯一的,如果指定自定义名称,则无法scale指定容器数量 |
| deploy | 指定部署和运行服务相关配置,只能在 Swarm 模式使用 |
| environment | 添加环境变量 |
| networks | 加入网络,引用顶级networks下条目 |
| network_mode | 设置容器的网络模式,如 host,bridge,… |
| ports | 暴露容器端口,与 -p 相同,但端口不能低于 60 |
| volumes | 挂载一个宿主机目录或命令卷到容器,命名卷要在顶级 volumes 定义卷名称 |
| volumes_from | 从另一个服务或容器挂载卷,可选参数 :ro 和 :rw,仅版本 ‘2’ 支持 |
| hostname | 容器主机名 |
| sysctls | 在容器内设置内核参数 |
| links | 连接到另外一个容器,- 服务名称[:服务别名] |
| privileged | 用来给容器root权限,注意是不安全的,true |
| restart | 设置重启策略,no,always,no-failure,unless-stopped |
重启策略
| 字段 | 说明 |
|---|---|
| build | 重新构建服务 |
| ps | 列出容器 |
| up | 创建和启动容器 |
| exec | 在容器里面执行命令 |
| scale | 指定一个服务容器启动数量 |
| top | 显示容器进程 |
| logs | 查看容器输出 |
| down | 删除容器、网络、数据卷和镜像 |
| stop/start/restart | 停止/启动/重启服务 |
yum install -y tree
tree /opt/compose_nginx
/opt/compose_nginx/
├── docker-compose.yml #创建模板脚本
├── nginx
│?? ├── Dockerfile #创建容器脚本
│?? ├── nginx-1.12.0.tar.gz #复制源码包
│?? └── run.sh #启动服务脚本
└── wwwroot
└── index.html #站点网页
mkdir -p /opt/compose_nginx/nginx /opt/compose_nginx/wwwroot cd /opt/compose_nginx/nginx cp nginx-1.12.0.tar.gz ./ vim Dockerfile #基于基础镜像 FROM centos:7 #用户信息 MAINTAINER this is nginx image <wl> #添加环境包 RUN yum -y update RUN yum -y install pcre-devel zlib-devel gcc gcc-c++ make RUN useradd -M -s /sbin/nologin nginx #上传nginx软件压缩包,并解压 ADD nginx-1.12.0.tar.gz /usr/local/src/ #指定工作目录 WORKDIR /usr/local/src/nginx-1.12.0 RUN ./configure \ --prefix=/usr/local/nginx \ --user=nginx \ --group=nginx \ --with-http_stub_status_module && make && make install ENV PATH /usr/local/nginx/sbin:$PATH #指定http和https端口 EXPOSE 80 EXPOSE 443 //方法一: RUN echo "daemon off;" >> /usr/local/nginx/conf/nginx.conf #关闭 nginx 在后台运行 #添加宿主机中run.sh到容器中 ADD run.sh /run.sh RUN chmod 755 /run.sh CMD ["/run.sh"] //方法二: ENTRYPOINT [ "/usr/local/nginx/sbin/nginx", "-g", "daemon off;" ] echo "<h1>this is test web</h1>" > /opt/compose_nginx/wwwroot/index.html

vim /opt/compose_nginx/docker-compose.yml version: '3' services: nginx: hostname: nginx build: context: ./nginx dockerfile: Dockerfile ports: - 1216:80 - 1217:443 networks: - lnmp volumes: - ./wwwroot:/usr/local/nginx/html networks: lnmp: cd /opt/compose_nginx/ docker-compose -f docker-compose.yml up -d ---------------------------------------------------------------------------------------------------------- -f, --file FILE :使用特定的 compose 模板文件,默认为 docker-compose.yml -p, --project-name NAME :指定项目名称,默认使用目录名称 -d :在后台运行 ---------------------------------------------------------------------------------------------------------- docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES b48dceee248f compose_nginx_nginx "/run.sh" About a minute ago Up About a minute 0.0.0.0:1216->80/tcp, 0.0.0.0:1217->443/tcp compose_nginx_nginx_1 cd /opt/compose_nginx/ docker-compose ps #必须在docker-compose.yml所在目录执行此命令 浏览器访问:http://192.168.24.72:1314



Harbor在架构.上主要有Proxy、 Registry、 Core services、 Database ( Harbor-db)、Log collector ( Harbor-log)、Job services六个组件。
Proxy: Harbor 的Registry、UI、Token服务等组件,都处在nginx 反向代理后边。该代理将来自浏览器、docker clients !的请求转发到后端不同的服务上。
Registry:负责储存Docker 镜像,并处理Docker push/pull命令。由于要对用户进行访问控制,即不同用户对Docker 镜像
有不同的读写权限,Registry 会指向一一个Token服务,强制用户的每次Docker pull/push 请求都要携带一 个合法的Token,Registry会通过公钥对Token进行解密验证。
Core services: Harbor的核心功能,主要提供以下3个服务:
Database (harbor-db) :为core services提 供数据库服务,负责储存用户权限、审计日志、Docker 镜像分组信息等数据。
Job services: 主要用于镜像复制,本地镜像可以被同步到远程Harbor 实例上。
Log collector (harbor-log):负责收集其他组件的日志到一个地方
Harbor的每个组件都是以Docker容器的形式构建的,因此,使用DockerCompose来对它进行部署。
总共分为7个容器运行,通过在docker-compose . yml所在目录中执行docker-compose ps命令来查看
其中harbor-adminserver主要是作为一个后端的配置数据管理,并没有太多的其他功能。harbor-ui所要操作的所有数据都通过harbor-adminserver这样一个 数据配置管理中心来完成
| Harbor服务器 | 192.168.24.72 | docker-ce、docker-compose、harbor-offline-v1.2.2 |
|---|---|---|
| Harbor服务器2 | 192.168.24.73 | docker-ce |
需求
通过Harbor创建Docker私有仓库
图形化管理Docker私有仓库镜像
关闭防火墙和selinux
systemctl stop firewalld
setenforce 0
下载或上传 Harbor 安装程序
Harbor的压缩包下载地址:https://github.com/goharbor/harbor/releases
wget http://harbor.orientsoft.cn/harbor-1.2.2/harbor-offline-installer-v1.2.2.tgz
tar zxvf harbor-offline-installer-v1.2.2.tgz -C /usr/local/
vim /usr/local/harbor/harbor.cfg
--5行--修改,设置为Harbor服务器的IP地址或者域名
hostname = 192.168.24.72
--59行--指定管理员的初始密码,默认的用户名/密码是admin/Harbor12345
harbor_admin_password = Harbor12345

修改daemon.json文件
vim /etc/docker/daemon.json

cd /usr/local/harbor/
在配置好了 harbor.cfg 之后,执行 ./prepare 命令,为 harbor 启动的容器生成一些必要的文件(环境)
再执行命令 ./install.sh 以 pull 镜像并启动容器


cd /usr/local/harbor/
docker-compose ps
docker-compose up -d #启动
docker-compose stop #停止
docker-compose restart #重新启动

1、浏览器访问:http://192.168.80.10 登录 Harbor WEB UI 界面,默认的管理员用户名和密码是 admin/Harbor12345



2、输入用户名和密码登录界面后可以创建一个新项目。点击“+项目”按钮

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。