次のdockerコマンドを実行しようとしています。
docker run -i -t ubuntu /bin/bash
しかし、私はエラーが出ます:
Unable to find image 'ubuntu' (tag: latest) locally
Pulling repository ubuntu
2013/11/28 14:00:24 Get https://index.docker.io/v1/images/ubuntu/ancestry: x509: certificate signed by unknown authority
私たちの会社がhttpsリクエストのためにその場でSSL証明書を置き換えることを知っています。
私の会社のCA証明書を次のように入力して信頼しようとしました。
/etc/pki/tls/certs/ca-bundle.crt
そして
/etc/pki/tls/cert.pem
しかし、それはまだ機能していません。
何か案は?
Dockerをプロキシシステムで動作するように設定するには、最初にHTTPS_PROXY/HTTP_PROXY環境変数をdocker sysconfigファイルに追加する必要があります。ただし、init.dまたはサービスツールのどちらを使用するかに応じて、「export」ステートメントを追加する必要があります。回避策として、両方のバリアントをdockerのsysconfigファイルに追加するだけです。
/etc/sysconfig/docker
HTTPS_PROXY="https://<user>:<password>@<proxy-Host>:<proxy-port>"
HTTP_PROXY="https://<user>:<password>@<proxy-Host>:<proxy-port>"
export HTTP_PROXY="https://<user>:<password>@<proxy-Host>:<proxy-port>"
export HTTPS_PROXY="https://<user>:<password>@<proxy-Host>:<proxy-port>"
Dockerがsslインターセプトプロキシで動作するようにするには、プロキシルート証明書をシステムのトラストストアに追加する必要があります。
CentOSの場合、ファイルを/ etc/pki/ca-trust/source/anchors /にコピーし、caトラストストアを更新します。その後、Dockerサービスを再起動します。プロキシがNTLM認証を使用している場合-cntlmなどの中間プロキシを使用する必要があります。 このブログ投稿では詳細に説明しています
@jpetazzoの答えは全体的に正しいですが、同じことを実行するより良い方法があります(ca-bundleファイルを手動で編集する必要はありません)。
centOS:
Sudo cp yourcert.crt /etc/pki/ca-trust/source/anchors/
Sudo update-ca-trust extract
Sudo service docker restart
debianの場合:
Sudo cp yourcert.crt /usr/local/share/ca-certificates/
Sudo update-ca-certificates
Sudo service docker restart
Dockerデーモンを再起動する必要があることに注意してください!
http://golang.org/src/pkg/crypto/x509/root_unix.go によると、次のいずれかに証明書を追加する必要があります。
システムに存在するものを見つけ、それに証明書を追加します。
(そして、そのファイルを含むパッケージをアップグレードするとき、再びそれをする準備ができている...)
より良い方法があるといいのですが、これが私がこれまでに見つけた唯一の方法です:-)