配置docker本地仓库遇到的一些问题

配置docker本地仓库的方法参考:http://dockerpool.com/static/books/docker_practice/repository/local_repo.html

在执行一下命令的时候遇到一些问题,记录如下:

000

复制

# pip install docker-registry

Searching for M2Crypto==0.22.3
Reading https://pypi.python.org/simple/M2Crypto/
Best match: M2Crypto 0.22.3
Downloading https://pypi.python.org/packages/source/M/M2Crypto/M2Crypto-0.22.3.tar.gz#md5=573f21aaac7d5c9549798e72ffcefedd
Processing M2Crypto-0.22.3.tar.gz
Writing /tmp/easy_install-vVPR1Z/M2Crypto-0.22.3/setup.cfg
Running M2Crypto-0.22.3/setup.py -q bdist_egg --dist-dir /tmp/easy_install-vVPR1Z/M2Crypto-0.22.3/egg-dist-tmp-3c7TJ3
SWIG/_m2crypto.i:30: Error: Unable to find 'openssl/opensslv.h'
SWIG/_m2crypto.i:33: Error: Unable to find 'openssl/safestack.h'
SWIG/_evp.i:12: Error: Unable to find 'openssl/opensslconf.h'
SWIG/_ec.i:7: Error: Unable to find 'openssl/opensslconf.h'
error: Setup script exited with error: command 'swig' failed with exit status

解决办法是安装 openssl-devel:

复制

# yum install -y openssl-devel.x86_64

001

重新执行 pip install docker-registry

复制

Searching for M2Crypto==0.22.3
Reading https://pypi.python.org/simple/M2Crypto/
Best match: M2Crypto 0.22.3
Downloading https://pypi.python.org/packages/source/M/M2Crypto/M2Crypto-0.22.3.tar.gz#md5=573f21aaac7d5c9549798e72ffcefedd
Processing M2Crypto-0.22.3.tar.gz
Writing /tmp/easy_install-5hkA4l/M2Crypto-0.22.3/setup.cfg
Running M2Crypto-0.22.3/setup.py -q bdist_egg --dist-dir /tmp/easy_install-5hkA4l/M2Crypto-0.22.3/egg-dist-tmp-pZ_OGN
/usr/include/openssl/opensslconf.h:36: Error: CPP #error ""This openssl-devel package does not work your architecture?"". Use the -cpperraswarn option to continue swig processing.
error: Setup script exited with error: command 'swig' failed with exit status

解决办法是手动安装 M2Crypto 0.22.3 (M2Crypto 0.22.3在centos7上安装会有一些问题需要借助脚本)

1. 下载 M2Crypto-0.22.3.tar.gz

复制

wget https://pypi.python.org/packages/source/M/M2Crypto/M2Crypto-0.22.3.tar.gz   #下载源码
tar zxvf M2Crypto/M2Crypto-0.22.3.tar.gz    # 解压
cd M2Crypto-0.22.3

2. 然后创建安装脚本,内容如下:

复制

# vim fedora_setup.sh
#!/bin/sh
# This script is meant to work around the differences on Fedora Core-based# distributions (Redhat, CentOS, ...) compared to other common Linux
# distributions.
#
# Usage: ./fedora_setup.sh [setup.py options]
#

arch=`uname -m`
for i in SWIG/_{ec,evp}.i; do
  sed -i -e "s/opensslconf\./opensslconf-${arch}\./" "$i"
done

SWIG_FEATURES=-cpperraswarn python setup.py $*

3. 然后为脚本添加执行权限,执行脚本,并安装M2Crypto 0.22.3

复制

# chmod +x fedora_setup.sh
# ./fedora_setup.sh build
# python setup.py install

至此可以完成安装,需要注意的是私有仓库的配置文件 config_sample.yml在以下路径

复制

/usr/lib/python2.7/site-packages/docker_registry-1.0.0_dev-py2.7.egg/config

002

配置完成后启动服务,push镜像的时候又有如下错误:

复制

docker pull 172.16.18.159:5000/ubuntu:12.04
Error: Invalid registry endpoint https://172.16.18.159:5000/v1/: Get https://172.16.18.159:5000/v1/_ping: EOF. If this private registry supports only HTTP or HTTPS with an unknown CA certificate, please add `--insecure-registry http://172.16.18.159:5000` to the daemon's arguments. In the case of HTTPS, if you have access to the registry's CA certificate, no need for the flag; simply place the CA certificate at /etc/docker/certs.d/http://172.16.18.159:5000/ca.crt

解决方法是在docker的配置文件里面OPTIONS添加 –insecure-registry http://172.16.18.159:5000 选项

复制

# /etc/sysconfig/docker

# Modify these options if you want to change the way the docker daemon runs
OPTIONS='--selinux-enabled --insecure-registry 172.16.18.159:5000'
DOCKER_CERT_PATH=/etc/docker

然后重启docker服务:

复制

# systemctl restart docker

至此错误全部解决,本地仓库配置成功

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏互扯程序

Linux常用Shell脚本,值得学习及收藏

在运维中,尤其是linux运维,都知道脚本的重要性,脚本会让我们的 运维事半功倍,所以学会写脚本是我们每个linux运维必须学会的一门功课,这里收藏linux运...

29510
来自专栏容器云生态

Docker1.12尝试

前言:在docker1.12中默认增加了swarm mode 编排功能,并且官方支持更多的插件来进行docker的网路和外接存储插件,不过目前测试swarm m...

498100
来自专栏智能大石头

如何部署编译NDIS驱动的环境(内部资料)

0,安装VC6英文版。 1,安装WinXP DDK。要完全安装,不然会比较麻烦。 2,安装DS。最好也完全安装,要不也是很麻烦。 3,DS安装好以后,运行"开始...

26190
来自专栏大魏分享(微信公众号:david-share)

身份验证和权限管理---Openshift3.9学习系列第三篇

OAuth是由Blaine Cook、Chris Messina、Larry Halff 及David Recordon共同发起的,目的在于为API访问授权提供...

45660
来自专栏mathor

如何让局域网内的其他人访问到自己在Tomcat上部署的项目

 学JSP第三节课,今天老师上课讲了开启Tomcat之后,将自己电脑的文件放到指定的目录下,可以让同宿舍的人访问并且下载,老师只是提了一下,没有具体讲,后来我看...

3.6K30
来自专栏Java架构沉思录

Linux常用Shell脚本知多少

在运维中,尤其是linux运维,都知道脚本的重要性,脚本会让我们的 运维事半功倍,所以学会写脚本是我们每个linux运维必须学会的一门功课,这里收藏linux运...

19510
来自专栏Felix的技术分享

Stetho的通信原理

36230
来自专栏老安的博客

openstack虚拟机内文件遭破坏的急救方案

    openstack虚拟机存放于ceph存储,由于用户将系统的grub误删除,导致系统无法正常引导。现在用户要求抢救文件。

9810
来自专栏计算机视觉战队

Caffe(含GPU)安装与测试

最近还是会有很多学习爱好者问我安装caffe的一些问题,虽然现在TF很是受大家的喜欢,但是还是会有很多学习者用着caffe。为了让更多的人少走弯路,网上也有很多...

40190
来自专栏MYSQL轻松学

Percona Toolkit 常用工具使用介绍

Percona Toolkit 是一组高级的命令行工具,用来管理 MySQL 和系统任务,主要包括: 1、验证主节点和复制数据的一致性 2、有效的对记录行进行归...

43460

扫码关注云+社区

领取腾讯云代金券