天天看點

docker 安裝

一:docker 安裝

ubuntu14.04:

1.Docker CE現在overlay2預設使用存儲驅動程式,建議您使用它來代替aufs。如果您需要使用aufs,您将需要做額外的準備。

除非你有一個強有力的理由,否則,安裝linux-image-extra-*允許Docker使用aufs存儲驅動程式的 軟體包。

sudo apt-get install \

linux-image-extra-$(uname -r) \

linux-image-extra-virtual

2.使用存儲庫進行安裝

更新apt軟體包索引:

sudo apt-get update

安裝軟體包以允許apt通過HTTPS使用存儲庫:

apt-transport-https \

ca-certificates \

curl \

software-properties-common

添加Docker的官方GPG密鑰:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88通過搜尋指紋的最後8個字元,确認您現在擁有指紋的密鑰 。

sudo apt-key fingerprint 0EBFCD88

使用以下指令來設定穩定的存儲庫。即使您想從邊緣或測試存儲庫安裝建構,也總是需要穩定的存儲 庫。要添加邊緣或 測試存儲庫,請在下面的指令中添加單詞或(或兩者)後面的單詞。edgeteststable

sudo add-apt-repository \

"deb [arch=amd64] https://download.docker.com/linux/ubuntu \

$(lsb_release -cs) \

stable"

在生産系統上,您應該安裝特定版本的Docker CE,而不是始終使用最新版本。此輸出被截斷。列出可用的版本。

apt-cache madison docker-ce

docker-ce | 17.09.0~ce-0~ubuntu | https://download.docker.com/linux/ubuntu xenial/stable amd64 Packages 清單的内容取決于啟用了哪個存儲庫。選擇一個特定的版本進行安裝。第二列是版本字元串。第三列是存儲庫名稱,它指出了軟體包來自哪個存儲庫,并通過擴充其穩定性級别。要安裝特定版本,請将版本字元串附加到包名稱,并用等号(=)将它們分開:

sudo apt-get install docker-ce=<VERSION>

二:以非root使用者身份管理Docker

該docker守護程式綁定到一個Unix套接字而不是TCP端口。預設情況下,Unix套接字由使用者擁有root,其他使用者隻能使用它來通路它sudo。該docker守護程序始終運作的root使用者。

如果您不想sudo在使用該docker指令時使用該指令,請建立一個名為“Unix”的組,docker并向其中添加使用者。當docker守護程序啟動時,它使Unix套接字的所有權可以被docker組讀/寫。

警告:該docker組授予與root 使用者等效的權限。

要建立docker組并添加您的使用者:

建立docker組。

$ sudo groupadd docker

将您的使用者添加到docker組中。

$ sudo usermod -aG docker $USER

登出并重新登入,以便重新評估您的組成員資格。

如果在虛拟機上進行測試,可能需要重新啟動虛拟機才能使更改生效。

在桌面Linux環境(如X Windows)上,完全退出會話,然後重新登入。

三:docker鏡像目錄遷移

預設 Docker 的鏡像檔案是安裝在/var/lib 目錄下的

1.在 Ubuntu/Debian 系統下:

編輯 /etc/default/docker 檔案, 添加-g 參數的設定, 如下:

DOCKER_OPTS="-g /home/ubuntu/data/docker/docker_data"

2。停止docker

service docker stop

mv /var/lib/docker/* /home/ubuntu/data/docker/docker_data

3.重新開機docker:service docker start

測試:sudo docker run hello-world

docker 端口映射錯誤解決方法

COMMAND_FAILED: '/sbin/iptables -t nat -A DOCKER -p tcp -d 0/0 --dport 8111 -j DNAT --to-destination 172.17.0.6:8111 ! -i docker0' failed: iptables: No chain/target/match by that name.

apt-get install bridge-utils

pkill docker

sudo iptables -t nat -F && sudo ifconfig docker0 down && sudo brctl delbr docker0

重新開機docker後解決

參考文章

http://www.linuxidc.com/Linux/2015-02/113141.htm

http://www.linuxidc.com/Linux/2015-02/113783.htm :Ubuntu下Docker固定IP配置及橋接

https://github.com/vmware/harbor/blob/master/docs/configure_https.md:使用HTTPS通路配置Harbour

用戶端登入認證失敗:

1.報錯:Error response from daemon: Get https://harbor.izhangxin.com/v1/users/: x509: certificate signed by unknown authority

在具有Docker守護程序的機器上,確定選項“-insecure-registry”不存在,并且您必須将上述步驟中生成的ca.crt複制到/etc/docker/certs.d/reg.yourdomain.com(或您的系統資料庫主機IP),如果該目錄不存在,請建立它。如果您将nginx端口443映射到另一個端口,則應該建立目錄/etc/docker/certs.d/reg.yourdomain.com:port(或您的系統資料庫主機IP:端口)。然後運作任何docker指令來驗證設定,例如

x509: certificate signed by unknown authority

如果遇到這個問題,就是ca.crt 沒有導入到本機信任清單中,運作下面指令解決

cp ca.crt /usr/local/share/ca-certificates/

update-ca-certificates

2:ubuntu@VM-0-5-ubuntu:~$ docker login harbor.izhangxin.com

Username: admin

Password:

Error response from daemon: Get https://harbor.izhangxin.com/v2/: x509: certificate is not valid for any names, but wanted to match harbor.izhangxin.com

解決辦法;用戶端修改docker的啟動配置

sudo vi /etc/default/docker

添加配置

DOCKER_OPTS="$DOCKER_OPTS -g /home/ubuntu/data/docker/docker_data" ##更改docker鏡像目錄

DOCKER_OPTS="$DOCKER_OPTS --insecure-registry=harbor.izhangxin.com" #跳過https認證

運作容器指令:

docker run

--name tomcat_static 定義容器名稱

-d 背景運作容器,并傳回容器ID

-p 8888:8888 -p 8889:8889 将容器的8888 和88889 端口分别映射到主機的8888 和88889 端口

-v /home/ubuntu/data/docker/tomcat_static/catalina.sh:/tomcat/apache-tomcat-8.5.23/bin/catalina.sh

-v /home/ubuntu/data/docker/tomcat_static/server.xml:/tomcat/apache-tomcat-8.5.23/conf/server.xml

-v /home/ubuntu/data/docker/tomcat_static/statics.hiigame.com.war:/tomcat/statics.hiigame.com.war

-v /home/ubuntu/data/docker/tomcat_static/logs:/tomcat/apache-tomcat-8.5.23/logs 主機的目錄或檔案映射到容器的目錄或檔案,容器檔案存在則會被覆寫

harbor.izhangxin.com/mirror/tomcat:0.1.1 使用鏡像

docker star/stop/restart [CONTAINER ID / NAME]

安裝腳本并改變docker預設路徑

#/bin/bash

apt-get update

apt-get install linux-image-extra-$(uname -r) linux-image-extra-virtual -y

apt-get install apt-transport-https ca-certificates curl software-properties-common -y

add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu \

apt-get install docker-ce=18.03.0~ce-0~ubuntu --force-yes

groupadd docker

usermod -aG docker ubuntu

if [ ! -d /home/ubuntu/data/docker/docker_data ];then

mkdir -p /home/ubuntu/data/docker/docker_data

fi

echo 'DOCKER_OPTS="$DOCKER_OPTS -g /home/ubuntu/data/docker/docker_data"' >> /etc/default/docker