centos7 安裝docker及搭建私有倉庫

一、安裝準備

  1. 必須是 64 位操作系統
  2. 內核在 3.10 以上【最後centos7及以上,不推薦單獨升級內核】
    如果不滿足以上兩個條件,就不用往下看了

二、安裝

  1. 先手動更新yum源安裝包

    yum update

  2. 使用yum安裝docker

    yum install docker -y
    說明:系統自帶源安裝的版本是1.12.6,如果要安裝高版本的docker,請看第五點

  3. 查看版本

    docker -v

  4. 啓動

    systemctl start docker

  5. 開機自啓動

    systemctl enable docker

三、docker最常用命令

  1. 停止某個容器,docker stop containerId
  2. 查看運行的容器,docker ps
  3. 啓動容器(後臺模式) docker run -d …
  4. 查看安裝鏡像,docker images
  5. 刪除一個容器,docker rm containerId/name
  6. 下載鏡像,docker pull nginx,從官網docker倉庫下載,慢
  7. 刪除鏡像,docker rmi imageID

四、私倉搭建

  1. 準備兩臺機器或者虛擬機

    192.168.1.138:Docker倉庫
    192.168.1.191:客戶端

  2. 在138這臺機器下載官方registry

    docker pull registry

  3. 防火牆添加運行5000端口

    iptables -I INPUT 1 -p tcp –dport 5000 -j ACCEPT

  4. 通過該鏡像啓動一個容器

    docker run -d -p 5000:5000 –privileged=true -v /opt/registry:/var/lib/registry registry
    參數說明:
    -v /opt/registry:/var/lib/registry:默認情況下,會將倉庫存放於容器內的/var/lib/registry目錄下,指定本地目錄掛載到容器

  5. 客戶端上傳鏡像

    • 修改/etc/sysconfig/docker
      找到OPTIONS在其後面追加’–insecure-registry 192.168.0.179:5000’

      因爲Docker從1.3.X之後,與docker registry交互默認使用的是https,而此處搭建的私有倉庫只提供http服務

    • 在docker公共倉庫下載一個鏡像
      docker pull docker.io/centos

    • 修改一下該鏡像的tag

      docker tag centos 192.168.1.138:5000/centos

    • 把打了tag的鏡像上傳到私有倉庫
      docker push 192.168.1.138:5000/centos

  6. 在191機器上下載剛上傳的鏡像

    • 修改/etc/sysconfig/docker,添加
      ADD_REGISTRY=’–add-registry 192.168.0.179:5000’

    • 使用docker pull centos下載私倉的鏡像

說明:
如果是用https就不用修改/etc/sysconfig/docker,如果沒有添加ADD_REGISTRY且在獲取鏡像時沒有加地址,則默認從官方下載鏡像。此時要從自己的倉庫須加域名或ip,比如:docker pull web.site:1433/nginx

五、安裝高版本docker

  1. 下載yum源

wget -P /etc/yum.repos.d/ https://download.docker.com/linux/centos/docker-ce.repo

  1. 使用yum install docker-ce安裝
  2. 配置docker加速器

vi /etc/systemd/system/multi-user.target.wants/docker.service ,在文中找到 ExecStart=這一行,加上在阿里雲獲取的加速器地址,如:ExecStart=/usr/bin/dockerd –registry-mirror=https://7jdd4k48.mirror.aliyuncs.com

六、注意事項

  1. 在1.13之前 安裝時/etc/docker/daemon.json自動生成,之後版本已經沒有該文件了

因爲在1.13後推薦不要使用 /etc/docker/daemon.json 文件對引擎進行配置, 原本使用配置文件是件好事,比如修改配置不必重啓服務,只需發送 SIGHUP 信號即可,但是目前在dockerd中使用配置文件有一些問題,無法得知具體哪項生效了,啓動日誌以及 docker info,還有 ps -ef 都不會給出生效配置,這對於排障很不方便。
當 dockerd 的參數和daemon.json文件中的配置有所重複或者衝突,會直接導引擎啓動失敗。
因此在這些問題解決前,先使用修改 docker.service 這類做法來實現。

  1. 因爲CentOS7中的安全模塊selinux把權限禁掉了,參數給容器加特權,不加上傳鏡像會報權限錯誤(OSError: [Errno 13] Permission denied: ‘/tmp/registry/repositories/liibrary’)或者(Received unexpected HTTP status: 500 Internal Server Error)錯誤。或者直接將selinux設置成disabled
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章