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

猜你喜欢

转载自blog.csdn.net/dh798417147/article/details/78403223