一: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使用存储库:
sudo apt-get install \
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,而不是始终使用最新版本。此输出被截断。列出可用的版本。
sudo apt-get update
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=

二:以非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
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
apt-get update
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

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

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