Docker and docker-compose快速安装

来自linux中国网wiki
Evan讨论 | 贡献2020年11月17日 (二) 08:31的版本 →‎国内网络
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳到导航 跳到搜索

参考

Docker-compose教程

Docker 镜像瘦身优化

Docker国内镜像的配置及使用

最后改DNS8.8.4.4

docker on cenos7

#install docker
yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine

yum install -y yum-utils \
           device-mapper-persistent-data \
           lvm2
  
#如果在外网         
 yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
#如果在国内 这里不要用 ali dns  反而是在国内用 8.8.4.4速度正常 or 114.114.114.114
yum-config-manager \
    --add-repo \
    https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo
    
yum makecache fast
yum install docker-ce -y   
systemctl enable docker
systemctl start docker

#NOTE 不要用pip 安装 容易出事,见最下面的直接 curl  官方二进制包 
yum -y install vim wget curl yum-utils bash-completion bash-completion-extras epel-release lrzsz telnet python-pip
pip install docker-compose

mkdir -p /home/data/docker

echo '{"graph": "/home/data/docker"}' >/etc/docker/daemon.json
# cat /etc/docker/daemon.json 
{"graph": "/home/data/docker"}

systemctl restart docker

#验证docker储存位置
docker system info | grep "Root Dir"

https://docs.docker.com/install/linux/docker-ce/centos/

on debian

国内网络

apt install sudo -y 
sudo apt-get update
apt-get install -y gnupg2
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
# step 2: 安装GPG证书

curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/debian/gpg | sudo apt-key add -
# Step 3: 写入软件源信息
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/debian $(lsb_release -cs) stable"
# Step 4: 更新并安装Docker-CE
sudo apt-get -y update
sudo apt-get -y install docker-ce

 安装指定版本的Docker-CE:
# Step 1: 查找Docker-CE的版本:
# apt-cache madison docker-ce

 Step 2: 安装指定版本的Docker-CE: (VERSION例如上面的17.03.1~ce-0~ubuntu-xenial)
# sudo apt-get -y install docker-ce=[VERSION]

国外网络

#Fri Nov  8 09:54:03 CST 2019
#apt  install software-properties-common  -y

apt-get remove docker docker-engine docker.io containerd runc

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

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

 sudo apt-key fingerprint 0EBFCD88
 sudo add-apt-repository    "deb [arch=amd64] https://download.docker.com/linux/debian \
   $(lsb_release -cs) \
   stable"
 apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io

https://docs.docker.com/install/linux/docker-ce/debian/

修改docker数据目录

#2020 centos and debian
mkdir -p /data/docker

echo '{"graph": "/data/docker"}' >/etc/docker/daemon.json
# cat /etc/docker/daemon.json 
#{"graph": "/data/docker"}

systemctl restart docker

#验证docker储存位置
docker system info | grep "Root Dir"

修改Docker数据目录位置,包含镜像位置

https://www.cnblogs.com/davygeek/p/9940022.html

DockerHub镜像加速

docker-compose

国外

#如果在内网看下面的手工 或者找个国内的 镜像吧 

sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose

curl -L "https://github.com/docker/compose/releases/download/1.25.0/docker-compose-Linux-x86_64"  -o /usr/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

#官方教程  有些机器 path没这个目录  
sudo curl -L "https://github.com/docker/compose/releases/download/1.25.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

 docker-compose 

国内 和手工

curl -L "https://get.daocloud.io/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
#curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

#firefox 直接下载居然很快 
wget https://github.com/docker/compose/releases/download/1.25.0/docker-compose-Linux-x86_64

curl -L "https://github.com/docker/compose/releases/download/1.25.0/docker-compose-Linux-x86_64“

trouble shooting

docker-compose up 启动容器服务超时错误:ERROR: An HTTP request took too long to complete. Retry with --verbose to obtain debug information.

docker-compose up 启动容器服务超时错误:ERROR: An HTTP request took too long to complete. Retry with --verbose to obtain debug information.


由于docker-compose up 同时启动的服务过多,超过了请求HTTP限制的60s时间仍未全部成功启动起来,所以出现了超时错误:

    ERROR: An HTTP request took too long to complete. Retry with --verbose to obtain debug information.
               If you encounter this issue regularly because of slow network conditions, consider setting COMPOSE_HTTP_TIMEOUT to a higher value (current value: 60).

其中60s是默认的时间。
解决思路:

把 COMPOSE_HTTP_TIMEOUT 的值调大,并转为环境变量即可。

解决步骤:

先进入/etc/profile配置文件,执行命令:

    vi /etc/profile

然后在尾部添加上下面代码:

    export COMPOSE_HTTP_TIMEOUT=500
    export DOCKER_CLIENT_TIMEOUT=500

接着使/etc/profile配置文件生效,执行命令:

    source /etc/profile

最后重新执行命令 docker-compose up 即可。

删除volume 后报错 改一下 目录就好了 
ERROR: stat /var/lib/docker/overlay2/bc5838430495b942c06a838d8bfecaf416211fa98cc2e3a2372a33ebb7d3061e: no such file or directory


echo '{"graph": "/home/data/docker"}' >/etc/docker/daemon.json

Error response from daemon: Get https://registry-1.docker.io/v2/: dial tcp: lookup registry-1.docker.io

Unable to find image 'telegrammessenger/proxy:latest' locally
docker: Error response from daemon: Get https://registry-1.docker.io/v2/: dial tcp: lookup registry-1.docker.io on [::1]:53: read udp [::1]:58699->[::1]:53: read: connection refused.


restart docker 

ERROR: Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)

原来是他们没开外网 坑
[email protected]:/data/apps/redis-cluster# docker-compose up  -d 
Pulling redis-cluster-7004 (redis:5.0.4-alpine)...
ERROR: Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)

https://docs.docker.com/compose/install/

Docker快速安装以及换镜像源