精华内容
下载资源
问答
  • 使用Docker镜像方式安装 下载Docker镜像 通过docker方式下载: docker pull emqx/emqx:v3.1.0 通过官网下载: wget -O emqx-docker.zip https://www.emqx.io/downloads/v3/latest/emqx-docker.zip unzip emqx-...

    使用Docker镜像方式安装

    下载Docker镜像

    通过docker方式下载:

    docker pull emqx/emqx:v3.1.0
    

    通过官网下载:

    wget -O emqx-docker.zip https://www.emqx.io/downloads/v3/latest/emqx-docker.zip
    unzip emqx-docker.zip
    docker load < emqx-docker-v3.1.0
    

    启动容器

     docker run -d --name emqx31 -p 1883:1883 -p 8083:8083 -p 8883:8883 -p 8084:8084 -p 18083:18083 emqx/emqx:v3.1.0
    

    配置EMQ(对于v3.1.0)

    #进入容器
    docker exec -ti emqx31 /bin/sh
    #MySQL认证
    #1.首先先关闭匿名认证(默认是开启的谁都能够登录)
    vi /opt/emqx/etc/emqx.conf
    ## Value: true | false
    allow_anonymous = false
    
    #2.用户和权限的mysql表
    CREATE TABLE mqtt_user ( 
    id int(11) unsigned NOT NULL AUTO_INCREMENT, 
    username varchar(100) DEFAULT NULL, 
    password varchar(100) DEFAULT NULL, 
    salt varchar(20) DEFAULT NULL, 
    is_superuser tinyint(1) DEFAULT 0, 
    created datetime DEFAULT NULL, 
    PRIMARY KEY (id), 
    UNIQUE KEY mqtt_username (username) 
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
    
    CREATE TABLE mqtt_acl ( 
    id int(11) unsigned NOT NULL AUTO_INCREMENT, 
    allow int(1) DEFAULT NULL COMMENT '0: deny, 1: allow', 
    ipaddr varchar(60) DEFAULT NULL COMMENT 'IpAddress', 
    username varchar(100) DEFAULT NULL COMMENT 'Username', 
    clientid varchar(100) DEFAULT NULL COMMENT 'ClientId', 
    access int(2) NOT NULL COMMENT '1: subscribe, 2: publish, 3: pubsub', 
    topic varchar(100) NOT NULL DEFAULT '' COMMENT 'Topic Filter', 
    PRIMARY KEY (id) 
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    
    #3.插入cal规则
    INSERT INTO `mqtt_acl` (`id`, `allow`, `ipaddr`, `username`, `clientid`, `access`, `topic`) VALUES 
    (1,1,NULL,'$all',NULL,2,'#'),
    (2,0,NULL,'$all',NULL,1,'$SYS/#'),
    (3,0,NULL,'$all',NULL,1,'eq #'),
    (5,1,'127.0.0.1',NULL,NULL,2,'$SYS/#'),
    (6,1,'127.0.0.1',NULL,NULL,2,'#'),
    (7,1,NULL,'dashboard',NULL,1,'$SYS/#');
    
    #4.插入用户(sha256值请自行转换)
    insert into mqtt_user (`username`, `password`) values ('admin', '03ac674216f3e15c761ee1a5e255f067953623c8b388b4459e13f978d7c846f4');
    可以配置超级管理员(超级管理员会无视ACL规则对所有的topic都有订阅和推送的权限)
    update mqtt_user set is_superuser=1 where id=x;
    
    ps:注意 auth.mysql.password_hash 为sha256的话,新增用户时需要手动传递加密后的值,plain的话则无需加密,明码存放
    
    #5.修改emqx mysql配置文件
    vi /opt/emqx/etc/plugins/emqx_auth_mysql.conf
    auth.mysql.server = xxxxxxxxx:3306 
    auth.mysql.username = root 
    auth.mysql.password = xxxxxxxx 
    auth.mysql.database = emq
    
    #6.重启emqx
    /opt/emqx/bin emqx stop
    /opt/emqx/bin emqx start
    /opt/emqx/bin emqx_ctl plugins load emqx_auth_mysql   #开启mysql认证插件
    
    mysql> select * from mqtt_acl;
    +----+-------+-----------+-----------+----------+--------+--------+
    | id | allow | ipaddr    | username  | clientid | access | topic  |
    +----+-------+-----------+-----------+----------+--------+--------+
    |  1 |     1 | NULL      | $all      | NULL     |      2 | #      |
    |  2 |     0 | NULL      | $all      | NULL     |      1 | $SYS/# |
    |  3 |     0 | NULL      | $all      | NULL     |      1 | eq #   |
    |  4 |     1 | 127.0.0.1 | NULL      | NULL     |      2 | $SYS/# |
    |  5 |     1 | 127.0.0.1 | NULL      | NULL     |      2 | #      |
    |  6 |     1 | NULL      | dashboard | NULL     |      1 | $SYS/# |
    +----+-------+-----------+-----------+----------+--------+--------+
    6 rows in set (0.00 sec)
    allow - 1: allow; 0: deny
    
    access - 1: subscribe; 2: publish; 3: publish and subscribe
    
    以上规则分别表示:
    允许任何用户发布除以 '$' 字符开头以外的任何主题的消息
    拒绝任何用户订阅任何以 "$SYS/" 开头的主题
    拒绝任何用户订阅 "#" 主题
    允许本机用户发布任何以 "$SYS/" 开头的主题
    允许本机用户发布发布除以 '$' 字符开头以外的任何主题的消息
    允许 dashboard 用户订阅任何以 "$SYS/" 开头的主题
    除此之外,用户可以导入自定义的 ACL 规则。
    
    展开全文
  • docker 私有镜像服务器搭建

    千次阅读 2019-06-07 05:02:00
    2.在服务器A上通过运行registry容器进行搭建 docker run -itd -v /my_registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry:latest 参数说明-itd:在容器中打开一个...

    1.准备一台服务器A(已安装docker, IP:192.168.39.111)

    2.在服务器A上通过运行registry容器进行搭建

    docker run -itd -v /my_registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry:latest

    参数说明
    -itd:在容器中打开一个伪终端进行交互操作,并在后台运行;
    -v:把宿主机的/data/registry目录绑定 到 容器/var/lib/registry目录(这个目录是registry容器中存放镜像文件的目录),来实现数据的持久化;
    -p:映射端口;访问宿主机的5000端口就访问到registry容器的服务了;
    --restart=always:这是重启的策略,假如这个容器异常退出会自动重启容器;
    --name registry:创建容器命名为registry,你可以随便命名;
    registry:latest:这个是刚才pull下来的镜像;

    3.在本地主机B上配置"不安全注册表" 即:http的连接(已安装docker,IP:192.168.39.215)

    编辑该daemon.json文件,其默认位置 /etc/docker/daemon.json在Linux或C:\ProgramData\docker\config\daemon.jsonWindows Server上。如果您使用Docker Desktop for Mac或Docker Desktop for Windows,请单击Docker图标,选择 Preferences,然后选择+ Daemon

    如果该daemon.json文件不存在,请创建它。添加一下内容后重启systemctl restart docker 假设文件中没有其他设置,则应具有以下内容:

    {
      "insecure-registries" : ["myregistrydomain.com:5000"]
    }

      mac 端是如下:

        

    4.在本地主机B上测试push和pull

     

    1. 先对镜像进行标记(标记需加ip,否则报错):docker tag busybox  192.168.39.111:5000/bbx:v1
    2. push镜像:docker push 192.168.39.111:5000/bbx:v1
    3. 第二步若成功,便可pull 拉取下来: docker pull 192.168.39.111:5000/bbx:v1

    总结:注意设置"不安全的注册表"是在推送的一端设置,不是在镜像服务器端

    转载于:https://www.cnblogs.com/spotatoman/p/10987524.html

    展开全文
  • Docker私有服务器搭建

    2020-11-05 10:07:19
    Docker私有服务器搭建 简介 在 Docker 中,当我们执行 docker pull xxx 的时候 ,它实际上是从 registry.hub.docker.com 这个地址去查找,这就是Docker公司为我们提供的公共仓库。在工作中,我们不可能把企业项目...

    Docker私有服务器搭建

    1. 简介

      在 Docker 中,当我们执行 docker pull xxx 的时候 ,它实际上是从 registry.hub.docker.com 这个地址去查找,这就是Docker公司为我们提供的公共仓库。在工作中,我们不可能把企业项目push到公有仓库进行管理。所以为了更好的管理镜像,Docker不仅提供了一个中央仓库,同时也允许我们搭建本地私有仓库。

    2. harbor的搭建

      1. 下载地址 下载安装包
      2. 在本地进行解压
      tar -xvf harbor-offline-installer-v1.2.2.tgz
      
      1. 修改IP地址与端口号,将harbor.yml.tmpl修改为harbor.yml并在其中修改
      hostname = 192.168.31.143:9090
      
      1. 通过运行 install.sh 构建镜像,并把服务启动起来:
      ./install.sh
      
    3. 使用:直接访问http://127.0.0.1:9090/(此处需要根据对应的IP与端口号进行修改),默认 admin 用户的密码为 Harbor12345登录后可进行修改

    4. 上传本地镜像文件

      1. 首先登录私有仓库
      docker login -u admin -p Harbor12345 127.0.0.1:9090
      
      1. 要通过docker tag将该镜像标志为要推送到私有仓库
      docker tag nginx:latest 127.0.0.1:9090/library/nginx:latest
      
      1. 上传镜像:
      docker push 127.0.0.1:9090/library/nginx:latest
      
    5. 上传完成就可以在其它的服务器中进行下载启动了

    6. 遇到的问题

      1. 如果docker版本过低需要对docker的版本进行升级
      2. 如果提示关于https相关错误需要把https中的相关配置注释掉harbor.yml
      3. 问题:Error response from daemon: Get https://140.143.249.40:80/v2/: dial tcp 140.143.249.40:80: connect: connection refused 需要发下处理
      #如果没有这个文件需要创建一个文件
      vi /etc/docker/daemon.json
      { "insecure-registries":["IP:port"] }
      #增加完成相关配置后需要重启服务
      systemctl daemon-reload
      systemctl restart docker 
      
    7. 其它如何下载运行这个镜像文件

      1. 登录么有服务器,因为你创建的项目不是一个公开的,如果是公开的就不需要登录了,下载完成后直接运行就可以了
      docker login -u admin -p Harbor12345 127.0.0.1:9090
      docker pull 127.0.0.1:9090/myproject/netpartrol@tag
      
      1. 运行
      #--add-host=myhostname 设置hosts文件
      docker run --add-host=myhostname:127.0.0.1 -d -p 8081:8081 58.22.5.82:9001/myproject/netpartrol
      
    展开全文
  • 从安全和效率等方面考虑,部署在私有环境内的 Registry 是非常...Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器。 镜像的存储harbor使用的是官方的docker registry(v2命名是distribution)服务去完...

    从安全和效率等方面考虑,部署在私有环境内的 Registry 是非常必要的,这里我是用的是Harbor这款VMware 公司中国团队为企业用户设计的 Registry server 开源项目

    一:简介
    Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器。

    镜像的存储harbor使用的是官方的docker registry(v2命名是distribution)服务去完成。harbor在docker distribution的基础上增加了一些安全、访问控制、管理的功能以满足企业对于镜像仓库的需求。harbor以docker-compose的规范形式组织各个组件,并通过docker-compose工具进行启停。

    docker的registry是用本地存储或者s3都是可以的,harbor的功能是在此之上提供用户权限管理、镜像复制等功能,提高使用的registry的效率。Harbor的镜像拷贝功能是通过docker registry的API去拷贝,这种做法屏蔽了繁琐的底层文件操作、不仅可以利用现有docker registry功能不必重复造轮子,而且可以解决冲突和一致性的问题。

     

    二:Harbor架构

     

    三:主要组件

    • Proxy:对应启动组件nginx。它是一个nginx反向代理,代理Notary client(镜像认证)、Docker client(镜像上传下载等)和浏览器的访问请求(Core Service)给后端的各服务;
    • UI(Core Service):对应启动组件harbor-ui。底层数据存储使用mysql数据库,主要提供了四个子功能:
    • UI:一个web管理页面ui;
    • API:Harbor暴露的API服务;
    • Auth:用户认证服务,decode后的token中的用户信息在这里进行认证;auth后端可以接db、ldap、uaa三种认证实现;
    • Token服务(上图中未体现):负责根据用户在每个project中的role来为每一个docker push/pull命令issuing一个token,如果从docker client发送给registry的请求没有带token,registry会重定向请求到token服务创建token。
    • Registry:对应启动组件registry。负责存储镜像文件,和处理镜像的pull/push命令。Harbor对镜像进行强制的访问控制,Registry会将客户端的每个pull、push请求转发到token服务来获取有效的token。
    • Admin Service:对应启动组件harbor-adminserver。是系统的配置管理中心附带检查存储用量,ui和jobserver启动时候需要加载adminserver的配置;
    • Job Sevice:对应启动组件harbor-jobservice。负责镜像复制工作的,他和registry通信,从一个registry pull镜像然后push到另一个registry,并记录job_log;
    • Log Collector:对应启动组件harbor-log。日志汇总组件,通过docker的log-driver把日志汇总到一起;
    • Volnerability Scanning:对应启动组件clair。负责镜像扫描
    • Notary:对应启动组件notary。负责镜像认证
    • DB:对应启动组件harbor-db,负责存储project、 user、 role、replication、image_scan、access等的metadata数据。

     

    四:安装

    实验环境

    CentOS Linux release 7.7.1908 (Core)

    Docker version 19.03.5, build 633a0ea

    docker-compose version 1.25.0, build b42d419

    注:由于Harbor是基于Docker Registry V2版本,所以就要求Docker版本不小于1.10.0,Docker-compose版本不小于1.6.0

    yum -y install docker-compose

    如果安装不上就先安装epel-release源,然后安装docker-compose,yum安装的docker-compose比pip 安装的版本要低

     

    安装Harbor

    因为是在内网使用所以没有使用https模式

    tar xf harbor-offline-installer-v1.9.0.tgz

    cd harbor

    vim harbor.yml

    • 5 hostname: 192.168.2.100
    • 27 harbor_admin_password: 123456

    hostname  设置访问地址。可以使用ip、域名、主机名,不可以设置为127.0.0.1或localhost。(如果部署的是备份库,填写ip而不是域名,否则会导致仓库管理连接失败,host无法识别原因不明)

     

    检测并创建harbor需要文件
    ./prepare(这部如果不需要HTTPS就不要做,不然没有做证书的情况下HTTP无法登录)

    安装

    ./install.sh

     

    Harbor安装就完成了 在浏览器验证

     

    向仓库中推送一个本地的镜像

    获得推送镜像的地址

    • 1 进入相应的项目
    • 2 library是进入的项目名称
    • 3 点击镜像仓库
    • 4 点击推送镜像
    • 5 这个地址是推送镜像需要的地址

     

    给要推送的镜像打标签

    docker tag b534869c81f0 192.168.2.101/library/busybox:v1

    • dcf9ec9265e0 :镜像ID
    • 192.168.2.100/library/ : 推送路径
    • redis:v1 推送后镜像的名称v1是标签

    向 Harbor推送

    推送前先要登录Harbor

    因为Docker现在login方式默认为Https如果Harbor没有配置成Https方式,需要修改docker配置文件

    vim /usr/lib/systemd/system/docker.service

    ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://192.168.2.102 --insecure-registry=192.168.2.0/23

    在ExecStart行添加 --insecure-registry=192.168.2.0/23

    修改完成后重启Docker和Docker-compose

    • systemctl daemon-reload
    • systemctl restart docker.service
    • docker-compose stop
    • docker-compose up -d

     

    或修改/etc/docker/daemon.json

    vim /etc/docker/daemon.json

    "insecure-registries": ["192.168.2.41:5000"]

    insecure-registries": ["192.168.2.41"] : 仓库认证地址

    live-restore": true  :  容器随docker启动

    重启docker

    systemctl restart docker.service

     

    登录

    docker login 192.168.2.101

     

    向Harbor推送制作好的镜像

    docker push 192.168.2.101/library/busybox:v1

     

     

     

     

     

     

     

    展开全文
  • Nexus是一款仓库管理工具,支持Npm,bower,maven,nuget,apt,yum甚至docker,helm等各种仓库,说的通俗以下,就是私服镜像仓库.并且有免费版,OSS版即为免费版,下载的时候请注意版本的选择. 下载地址 往下面滚动页面,可以...
  • 基于Docker服务器搭建

    千次阅读 2019-02-17 16:28:00
    -----------基于Docker的多种服务器搭建----------- 开发环境 本机上的虚拟机 Centos7.4 Docker1.13.1 Openssl1.1.1 1 Nginx 1.1 HTTP 1. 创建Dockerfile 2. 创建镜像 docker build -t nginx_http ...
  • 一、前言 本案例使用阿里云服务器搭建,笔者将registry和docker镜像编译分开在两台机器,小伙伴们实际使用,可以在一台机器操作即可。 环境:Centos7 registry服务器 IP:47.100.219.117 docker镜像编译服务器 ...
  • docker镜像服务器间复制

    千次阅读 2018-03-07 16:47:02
     能达到以上目的有两种方式,一种是上传镜像到仓库中(本地或公共仓库),但是另一台服务器很肯能只是与当前服务器局域网想通而没有公网的,所以如果使用仓库的方式,只能自己搭建私有仓库,这会在另一篇文章中介绍...
  • 参考这篇文章: ... AppRTC-Server 一章 主要说下注意事项: docker 镜像pull 下来之后,运行命令如下: docker run --rm \ -p 8080:8080 -p 8089:8089 -p 3478:...
  • 搭建Docker镜像私有服务器

    千次阅读 2018-01-26 19:06:30
    [root@localhost opt]# docker run -d -p 5000:5000 -v /opt/docker/registry:/var/lib/registry --restart always --name registry registry:2 Unable to find image 'registry:2' locally 2: Pulling f
  • 小编今天在自己搭建docker镜像服务器内,本来想修改一下服务器里面的某个配置文件的,但是,在编辑文件的过程中显示报错,具体显示如下: root@haha:/# nano bash: nano: command not found root@haha:/# pico...
  • 群晖nas中使用registry搭建docker镜像私人服务器以及设置群晖远程docker服务 折腾群晖服务器很有快感,一是因为自家群晖ds216+低功耗,24小时开机也不觉得费电,二是因为群晖系统也是linux,精简版的debian,其他...
  • 使用verdaccio的docker镜像搭建npm私服

    千次阅读 2018-08-29 19:57:58
    使用verdaccio的docker镜像搭建npm私服 坑 nginx配置 使用自定义文件修改npm源 使用自定义文件后,权限问题 首先安装docker 本人服务器环境centos6.9 yum install -y docker-io 如果出现没有安装任何...
  • Docker的介绍网上非常多,在我看来,用简单点的话去解释,Docker就是一个可以运行某类程序的最小系统进程。各种关于虚拟化的软件大家应该都了解一些,比如VMware、Virtualbox、KVM、ESXI等,这种虚拟化其实就是将多...
  • tvial/docker-mailserver邮箱服务器。可以自己在小网中搭建一个邮件服务器自己玩。启动方法 docker run --name forsaken-mail -itd -p 2255:25 -p 3000:3000 tvial/docker-mailserver:latest
  • 1、自己在百度云买的服务器(也可以自己搭建虚拟机) 2、Docker  3、Docker-compose 4、Harbor 安装docker 和 Docker-compose就不多说了,自己自己去网上搜索教程 下载Harbor : cd /opt/harbor (这是我自己...
  • # 下载镜像 docker pull elleflorio/svn-server # 创建宿主机数据持久化数据卷 docker volume create svn-main # 运行容器 docker run -dit --name svn-server -v svn-main:/home/svn -p 8443:80 -p 3961:3960 -w ...
  • 从192.168.0.121服务器打包下载镜像 docker save -o redis-cluster-4.0.1.tar ubuntu-redis 镜像下载地址:https://download.csdn.net/download/wxuzero/11038067 在目标服务器载入镜像 docker load --input ...
  • Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,通过添加一些企业必需的功能特性,例如安全、标识和管理等,扩展了开源Docker Distribution。作为一个企业级私有Registry服务器,Harbor提供了更好的...
  • 利用docker镜像搭建openstack本地源。 我们利用镜像dgutierrez1287/yum-repo来创建repo源服务器 源代码地址:https://github.com/dgutierrez1287/docker-yum-repo 此镜像可以自动发现rpm包的改动并update ...
  • 使用docker镜像制作可以ssh登录的虚拟机  3:配置虚拟机桥接网络,独立ip可以保证外部登录[不走端口映射] ==========宿主机配置虚拟桥接网卡在Linux上创建桥设备=========== 首先最开始的网络信息如下: [root@...
  • 基于Docker镜像elleflorio/svn-server搭建SVN服务器搭建过程如下:1、在宿主机创建svn相关目录2、拉取最新镜像3、运行容器4、复制容器中SVN配置文件至宿主机5、停止并移除容器6、运行容器并挂载配置及SVN目录7、查看...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,552
精华内容 620
关键字:

docker镜像服务器搭建