<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    逝者如斯夫

    靜而思之
    數(shù)據(jù)加載中……

    2014年2月28日

    Docker Registry 安裝和運行

    使用場景

    • 內(nèi)部網(wǎng)絡(luò),無法訪問 Docker Hub
    • 控制 image 的存儲方式和存儲位置
    • 控制 image 的部署流程
    • 內(nèi)部開發(fā)流程需要集成控制 image 的部署和存儲

    應(yīng)用邏輯示意圖:

    ?

    安裝 Registry 服務(wù)

    概要

    Docker Registry 在 docker hub 的名稱是 registry。v1 版本的源碼地址 github.com/docker/docker-registry 已經(jīng)廢棄,v2 版本源碼地址在 github.com/docker/distribution,對應(yīng)的 API 是 Docker Registry HTTP API V2

    以下安裝沒有使用 HTTPS 方式,啟用 HTTPS 相關(guān)的證書配置參考這個文檔:

    官方文檔參考:

    最簡安裝(啟動)

    docker run -d -p 5000:5000 --name registry registry:2
    

    以上命令未使用用戶名密碼登錄策略。

    啟用登錄密碼

    生成密碼

    登錄密碼可以通過 host 的文件傳入,以下命令調(diào)用容器的 htpasswd 命令生成密碼文件:

    mkdir auth
    docker run --entrypoint htpasswd registry:2 \
        -Bbn <USER_NAME> <PASSWORD> > auth/auth.htpasswd
    

    啟用密碼

    通過 –volume 參數(shù)傳入密碼文件:

    docker run -d -p 5000:5000 --restart=always --name registry \
      --volume `PWD`/auth:/auth \
      --env "REGISTRY_AUTH=htpasswd" \
      --env "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
      --env REGISTRY_AUTH_HTPASSWD_PATH=/auth/auth.htpasswd \
      registry:2
    

    修改鏡像存儲

    默認(rèn)鏡像數(shù)據(jù)存儲在 Docker Volume 中,可以通過 bind mount 進(jìn)行修改,參數(shù)信息參考 Volume文檔。下面的例子將本機目錄 PWD/images 綁定到容器的 /var/lib/registry

    docker run -d -p 5000:5000 \
        --name auth-registry \
        -v `PWD`/images:/var/lib/registry \
        -e SQLALCHEMY_INDEX_DATABASE=sqlite:////opt/docker-image/docker-registry.db \
        -e STORAGE_PATH=/opt/docker-image \
        --restart=always \
        docker.onestch.com:5000/admin/registry:0.1
    

    默認(rèn)的存儲引擎為本地文件系統(tǒng),可以修改文件的存儲引擎為 Amazon S3 bucket、Google Cloud Platform 或其他引擎,可以通過配置 config.yml 的方式修改存儲配置,更多信息參考 Docker Registry 存儲配置文檔

    停止服務(wù)

    停止 registry 容器并清理運行數(shù)據(jù)

    docker stop registry && \
    docker rm -v registry
    

    驗證

    查看容器信息

    docker ps --no-trunc
    

    查看全部配置信息或部分信息

    docker inspect <CONTAINER_ID> 
    
    docker inspect <CONTAINER_ID> | grep -C3 -e "Volumes\":"
    docker inspect <CONTAINER_ID> | grep -C2 Binds
    docker inspect -f '{{ .Mounts }}' <CONTAINER_ID>
    

    查看映射的詳細(xì)信息

    docker volume inspect 4496b0a257b966052ef8d0743014a4f63fc9924251c8de0df0e9c70fde4c45e6
    

    發(fā)布鏡像

    登錄服務(wù)

    如果安裝(啟動)的 registry 服務(wù)需要登錄訪問時,執(zhí)行:

    docker login <REGISTRY_HOST>:<REGISTRY_PORT>
    

    輸入安裝時設(shè)定的用戶名密碼。

    目標(biāo)地址

    使用 docker tag 設(shè)定鏡像的目標(biāo)地址,鏡像的目標(biāo)地址包括三部分

    <HOST_NAME>[:<HOST_PORT>]/<IMAGE_NAME>:<IMAGE_VERSION>
    
    • HOST_NAME : HOST_PORT

      目標(biāo) registry 服務(wù)地址,缺省時使用官方 docker hub 的地址 registry-1.docker.io,且不允許包含下劃線

    • IMAGE_NAME 發(fā)布目標(biāo)鏡像名稱

    • IMAGE_VERSION 發(fā)布目標(biāo)鏡像版本

    例如:repo.company.com:3456/myapp:0.1

    發(fā)布鏡像

    發(fā)布的鏡像文件可以從 docker hub 中 Pull 或者本地使用 Dockerfile build 獲得

    Pull

    docker pull registry
    

    Build

    docker build -t docker.onestch.com:5000/admin/registry:0.1 .
    

    首先需要對鏡像 tag 設(shè)定目標(biāo)倉庫,如果 build 的時候已經(jīng)設(shè)置了目標(biāo)地址,可以不用進(jìn)行 tag 操作

    docker tag registry:latest docker.onestch.com:5000/admin/registry:0.1
    

    然后 Push

    docker push docker.onestch.com:5000/admin/registry:0.1
    

    驗證

    重新從私有倉庫中獲取鏡像

    docker pull localhost:5000/admin/registry:0.1
    
    0.1: Pulling from admin/registry
    Digest: sha256:d738e358b6910d3a53c9c7ff7bbb5eac490ab7a9b12ffb4c1c27f2c53aae9275
    Status: Image is up to date for localhost:5000/admin/registry:0.1
    

    安裝 Registry UI

    選擇 registry ui,可選的有 atcol/docker-registry-uihyper/docker-registry-webkonradkleine/docker-registry-frontend

    安裝運行

    針對 hyper/docker-registry-web,使用 BASIC 認(rèn)證,未使用 HTTPS的情況

    docker run -it -p 8080:8080 \
        --rm \
        --name registry-web \
        --link auth-registry \
        -e REGISTRY_URL=http://auth-registry:5000/v2 \
        -e REGISTRY_AUTH_ENABLED=false \
        -e REGISTRY_BASIC_AUTH=YWRtaW46MTIzNDU2 \
        -e REGISTRY_NAME=docker.onestch.com:5000 hyper/docker-registry-web
    

    命令中 auth-registry 是自定的 registry 鏡像。

    使用 HTTPS 時需要傳入 /config/auth.key 文件,或自定義 config.xml 配置,例如:
    docker run -it -p 8080:8080 –name registry-web \
    –link auth-registry \
    -v $(pwd)/config.yml:/conf/config.yml:ro \
    hyper/docker-registry-web

    管理界面

    建立了 registry 服務(wù)后,對 registry 的管理界面在本機的訪問地址是http://localhost:8080,一般 ui 服務(wù)會和 registry 服務(wù)同樣運行在私有網(wǎng)絡(luò),所以我們可以發(fā)布 registry ui 到 registry 服務(wù)器再運行。

    docker tag docker.io/hyper/docker-registry-web docker.onestch.com:5000/admin/docker-registry-web
    
    docker push docker.onestch.com:5000/admin/docker-registry-web
    

    查看 UI 界面如下圖

    ?

    posted @ 2018-08-03 11:49 ideame 閱讀(1297) | 評論 (0)編輯 收藏

    Zookeeper Cli 常用命令

    服務(wù)管理

    • 啟動ZK服務(wù): zkServer.sh start
    • 查看ZK狀態(tài): zkServer.sh status
    • 停止ZK服務(wù): zkServer.sh stop
    • 重啟ZK服務(wù): zkServer.sh restart

    終端操作

    使用 zkCli 可以簡單的對 ZooKeeper 進(jìn)行訪問,數(shù)據(jù)創(chuàng)建,數(shù)據(jù)修改等操作. 連接命令行如下:

    zkCli.sh -server 127.0.0.1:2181
    

    命令行工具常用操作:

    • 顯示根目錄下文件

      ls /              //查看當(dāng)前節(jié)點數(shù)據(jù)
      ls2 /             //查看當(dāng)前節(jié)點數(shù)據(jù)并能看到更新次數(shù)等數(shù)據(jù)
      
    • 創(chuàng)建文件, 并設(shè)置初始內(nèi)容:

      create /config "test" //創(chuàng)建一個新的節(jié)點并設(shè)置關(guān)聯(lián)值
      create /config “”     //創(chuàng)建一個新的空節(jié)點
      
    • 獲取文件內(nèi)容

      get /brokers      //獲取節(jié)點內(nèi)容
      
    • 修改文件內(nèi)容

      set /zk "zkbak"   //對 zk 所關(guān)聯(lián)的字符串進(jìn)行設(shè)置
      
    • 刪除文件

      delete /brokers  //刪除節(jié)點
      rmr    /brokers  //刪除節(jié)點及子節(jié)點
      

    四字命令

    ZooKeeper 支持某些特定的四字命令字母與其的交互,用來獲取服務(wù)的當(dāng)前狀態(tài)及相關(guān)信息。在客戶端可以通過 telnet 或 nc 向 ZooKeeper 提交相應(yīng)的命令。命令行如下:

    echo conf | nc 132.37.3.26 26181
    

    ZooKeeper 常用四字命令:

    • conf

      輸出相關(guān)服務(wù)配置的詳細(xì)信息

    • cons

      列出所有連接到服務(wù)器的客戶端的完全的連接 / 會話的詳細(xì)信息。包括“接受 / 發(fā)送”的包數(shù)量、會話 id 、操作延遲、最后的操作執(zhí)行等等信息

    • dump

      列出未經(jīng)處理的會話和臨時節(jié)點。

    • envi

      輸出關(guān)于服務(wù)環(huán)境的詳細(xì)信息(區(qū)別于 conf 命令)。

    • reqs

      列出未經(jīng)處理的請求

    • ruok

      測試服務(wù)是否處于正確狀態(tài)。如果確實如此,那么服務(wù)返回“ imok ”,否則不做任何相應(yīng)

    • stat

      輸出關(guān)于性能和連接的客戶端的列表。

    • wchs

      列出服務(wù)器 watch 的詳細(xì)信息

    • wchc

      通過 session 列出服務(wù)器 watch 的詳細(xì)信息,它的輸出是一個與 watch 相關(guān)的會話的列表

    • wchp

      通過路徑列出服務(wù)器 watch 的詳細(xì)信息。它輸出一個與 session 相關(guān)的路徑

    posted @ 2016-10-10 17:54 ideame 閱讀(5546) | 評論 (0)編輯 收藏

    JMH(Java Micro Benchmark) 簡介

         摘要: JMH簡介本文由 ImportNew - hejiani 翻譯自 java-performance。JMH是新的microbenchmark(微基準(zhǔn)測試)框架(2013年首次發(fā)布)。與其他眾多框架相比它的特色優(yōu)勢在于,它是由Oracle實現(xiàn)JIT的相同人員開發(fā)的。特別是我想提一下Aleksey Shipilev和他優(yōu)秀的博客文章。JMH可能與最新的Oracle JRE同步,其結(jié)果可信度很高。JMH...  閱讀全文

    posted @ 2016-08-01 17:12 ideame 閱讀(3260) | 評論 (0)編輯 收藏

    如何將 SVN 源碼庫轉(zhuǎn)換為 Mercurial

    如何將 SVN 源碼庫轉(zhuǎn)換為 Mercurial [1]

    首先得安裝 Subversion 庫函數(shù)

    				    wget http://mirrors.hust.edu.cn/apache/subversion/subversion-1.8.8.tar.gz
    
        tar xzf subversion-1.8.8.tar.bz2 
    
        cd subversion-1.8.8
    
        subversion-1.8.8 aliang$ ./autogen.sh 
            buildcheck: checking installation...
            buildcheck: autoconf not found.
                        You need autoconf version 2.59 or newer installed.
    
        brew install autoconf
            ==> Downloading https://downloads.sf.net/project/machomebrew/Bottles/autoconf-2.69.mavericks.bottle.tar.gz
            #################################################### 100.0%
            ==> Pouring autoconf-2.69.mavericks.bottle.tar.gz
            ?? /usr/local/Cellar/autoconf/2.69: 69 files, 2.0M
    
        ./autogen.sh 
            buildcheck: checking installation...
            buildcheck: autoconf version 2.69 (ok)
            buildcheck: autoheader version 2.69 (ok)
            buildcheck: libtool not found.
            You need libtool version 1.4 or newer installed
    
        brew install libtool
            Warning: A newer Command Line Tools release is available
            Update them from Software Update in the App Store.
            ==> Downloading https://downloads.sf.net/project/machomebrew/Bottles/libtool-2.4.2.mavericks.bottle.2.tar.gz
            ##################################################### 100.0%
            ==> Pouring libtool-2.4.2.mavericks.bottle.2.tar.gz
            ==> Caveats
            In order to prevent conflicts with Apple''s own libtool we have prepended a "g"
            so, you have instead: glibtool and glibtoolize.
            ==> Summary
            ??  /usr/local/Cellar/libtool/2.4.2: 66 files, 2.2M
    
        ./autogen.sh 
            buildcheck: checking installation...
            buildcheck: autoconf version 2.69 (ok)
            buildcheck: autoheader version 2.69 (ok)
            buildcheck: libtool version 2.4.2 (ok)
            Copying libtool helper: /usr/local/share/aclocal/libtool.m4
            Copying libtool helper: /usr/local/share/aclocal/ltoptions.m4
            Copying libtool helper: /usr/local/share/aclocal/ltsugar.m4
            Copying libtool helper: /usr/local/share/aclocal/ltversion.m4
            Copying libtool helper: /usr/local/share/aclocal/lt~obsolete.m4
            Creating build-outputs.mk...
            Creating svn_private_config.h.in...
            Creating configure...
    
            You can run ./configure now.
    
            Running autogen.sh implies you are a maintainer.  You may prefer
            to run configure in one of the following ways:
    
            ./configure --enable-maintainer-mode
            ./configure --disable-shared
            ./configure --enable-maintainer-mode --disable-shared
            ./configure --disable-optimize --enable-debug
            ./configure CUSERFLAGS='--flags-for-C' CXXUSERFLAGS='--flags-for-C++'
    
            Note:  If you wish to run a Subversion HTTP server, you will need
            Apache 2.x.  See the INSTALL file for details.
    
        brew install swig
            ==> Downloading http://downloads.sourceforge.net/project/swig/swig/swig-2.0.11/swig-2.0.11.tar.gz
            ######################################################################## 100.0%
            ==> ./configure --prefix=/usr/local/Cellar/swig/2.0.11
            ==> make
            ==> make install
            ??  /usr/local/Cellar/swig/2.0.11: 597 files, 6.2M, built in 10.1 minutes 
    
        ./configure --with-swig=/usr/local/bin/swig
            configure: Configuring Subversion 1.8.8
            ... ...
            ==================================================================
            WARNING: You have chosen to compile Subversion with a different
                     compiler than the one used to compile Apache.
    
                Current compiler:  gcc
               Apache's compiler:  /Applications/Xcode.app/Contents/Developer/Toolchains/OSX10.9.xctoolchain/usr/bin/cc
    
            This could cause some problems.
            ==================================================================
            ... ...
    
        make swig-py
        make install
        make check-swig-py        
        sudo make install-swig-py
    
        sudo cp -r /usr/local/lib/svn-python/ /Library/Python/2.7/site-packages/
    
    		

    執(zhí)行轉(zhuǎn)換命令

    				    mkdir hgpath
    
        cd hgpath
    
        hg init
    
        hg convert -s svn -d hg ${local_path} ./hgpath
    
    		

    注意,這里轉(zhuǎn)換的 SVN 目錄只能是倉庫目錄而不是工作目錄

    posted @ 2014-02-28 11:25 ideame 閱讀(583) | 評論 (0)編輯 收藏

    主站蜘蛛池模板: 久久久久亚洲AV无码专区首| 成av免费大片黄在线观看| 亚洲AV无码国产丝袜在线观看 | 亚洲自偷自偷在线制服| 午夜私人影院免费体验区| 亚洲人成免费电影| 中文无码成人免费视频在线观看| 国产精品亚洲AV三区| 国产成人精品日本亚洲18图| 4444亚洲国产成人精品| 亚洲乱码国产乱码精品精| 亚洲第一黄色网址| 国产在线不卡免费播放| 99视频在线精品免费观看6| 亚洲高清中文字幕免费| 亚洲人成免费网站| 久草视频免费在线| 成人午夜免费福利视频| 91麻豆最新在线人成免费观看| 日韩免费电影网站| 精品国产一区二区三区免费| 成全在线观看免费观看大全 | 亚洲av无码成人精品区在线播放| 毛色毛片免费观看| 男男AV纯肉无码免费播放无码| 国产91免费视频| 亚洲男人的天堂一区二区| 国产伦一区二区三区免费 | 亚洲中文字幕无码久久2020 | 久草视频在线免费| 免费人成网站在线观看10分钟| 免费观看激色视频网站bd| 亚洲免费电影网站| 丁香花在线观看免费观看 | 无码亚洲成a人在线观看| 亚洲色无码专区一区| 亚洲国产欧美国产综合一区| 精品久久亚洲一级α| 全黄A免费一级毛片| 皇色在线免费视频| 国产高清不卡免费视频|