总体步骤:
# Step 1: 安装必要的一些系统工具
sudo yum install -y yum-utils
# Step 2: 添加软件源信息,使用阿里云镜像
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step 3: 安装 docker-ce
sudo yum install docker-ce docker-ce-cli containerd.io
# Step 4: 开启 docker服务
sudo systemctl start docker
# Step 5: 运行 hello-world 项目
sudo docker run hello-world
步骤分解:
一、CentOS Docker 安装:
卸载旧版本 较旧的 Docker 版本称为 docker 或 docker-engine 。如果已安装这些程序,请卸载它们以及相关的依赖项。
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
1、安装 Docker Engine-Community
使用 Docker 仓库进行安装 在新主机上首次安装 Docker Engine-Community 之前,需要设置 Docker 仓库。之后,您可以从仓库安装和更新 Docker。
2、设置仓库
安装所需的软件包。yum-utils 提供了 yum-config-manager ,并且 device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2。
yum install -y yum-utils device-mapper-persistent-data lvm2
使用以下命令来设置稳定的仓库。
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
#或
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum-config-manager --add-repo https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
3、安装 Docker Engine-Community
安装最新版本的 Docker Engine-Community 和 containerd,或者转到下一步安装特定版本:
yum install -y docker-ce docker-ce-cli containerd.io
如centos8 执行上面命令安装会报错:
(尝试添加 ‘–skip-broken’ 来跳过无法安装的软件包 或 ‘–nobest’ 来不只使用最佳选择的软件包) 经过上网查资料发现是***containerd.io***的缘故、在安装最新的Docker时,
yum程序并没有自动安装对应的container.io程序、我们可以使用 download.docker.com/linux/cento… #Docker(官方源)或者阿里云 mirrors.aliyun.com/docker-ce/l… 进行下载安装、无论是阿里源还是Docker官方源,都只有Centos7的RPM包,所以源是没问题的
解决方法:
yum install -y https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/edge/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm
命令安装最新的 containerd.io、然后就可以顺利的安装Docker了
Docker配置国内镜像仓库源:
cr.console.aliyun.com/cn-hangzhou…>容器镜像服务->镜像加速器
可复制加速器地址设置,也可按网页提示,直接复制命令配置:
针对Docker客户端版本大于 1.10.0 的用户
您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://xxxxxxx.mirror.aliyuncs.com"],
"dns": ["192.168.1.1"] #设定容器DNS的地址,在容器的 /etc/resolv.conf文件中可查看。
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
二、docker-compose安装
方法1:curl方法:
curl -L "https://github.com/docker/compose/releases/download/1.26.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
#或
curl -L https://github.com/docker/compose/releases/download/1.26.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
#授权
sudo chmod +x /usr/local/bin/docker-compose
#检查安装状态
docker-compose --version
方法2:pip方式
pip install --upgrade pip
yum -y install epel-release
yum -y install python-pip
pip install docker-compose
docker-compose version
Docker 安装完默认未启动。并且已经创建好 docker 用户组,但该用户组下没有用户。
要安装特定版本的 Docker Engine-Community,请在存储库中列出可用版本,然后选择并安装:
3.1、列出并排序您存储库中可用的版本。此示例按版本号(从高到低)对结果进行排序。
yum list docker-ce --showduplicates | sort -r
docker-ce.x86_64 3:18.09.1-3.el7 docker-ce-stable
docker-ce.x86_64 3:18.09.0-3.el7 docker-ce-stable
docker-ce.x86_64 18.06.1.ce-3.el7 docker-ce-stable
docker-ce.x86_64 18.06.0.ce-3.el7 docker-ce-stable
3.2、通过其完整的软件包名称安装特定版本,该软件包名称是软件包名称(docker-ce)加上版本字符串(第二列),从第一个冒号(:)一直到第一个连字符,并用连字符(-)分隔。例如:docker-ce-18.09.1。
$ sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io
4、启动 Docker。
$ sudo systemctl start docker
5、通过运行 hello-world 映像来验证是否正确安装了 Docker Engine-Community 。
$ sudo docker run hello-world
三 、Docker设置通过HTTP代理pull
一、注释掉DNS的配置:(如有配置)
vim /etc/resolv.conf
# Generated by NetworkManager
search apa.gad.schneider-electric.com
nameserver xx.xx.xx.xx
改为:
vim /etc/resolv.conf
# Generated by NetworkManager
#search apa.gad.schneider-electric.com
#nameserver xx.xx.xx.xx
二、 代理配置
mkdir -p /etc/systemd/system/docker.service.d
vim /etc/systemd/system/docker.service.d/http-proxy.conf
vim /etc/systemd/system/docker.service.d/https-proxy.conf
具体配置内容
http-proxy.conf:
[Service]
Environment="HTTP_PROXY=http://xx.xx.xx.xx:80/" "NO_PROXY=localhost,127.0.0.1"
http-proxys.conf:
[Service]
Environment="HTTPS_PROXY=http://xx.xx.xx.xx:80/" "NO_PROXY=localhost,127.0.0.1"
三、重启docker服务
systemctl daemon-reload
systemctl restart docker
四、查看配置结果
systemctl show --property=Environment docker
如果出现如下输出则配置成功
Environment=HTTP_PROXY=http://x.xx.xx.xx:80/
docker启动后的容器通过代理临时上网:
执行命令行:
export http_proxy=http://136.15.2.3:909/ && export https_proxy=http://136.15.2.3:909/
取消代理:
unset http_proxy
unset https_proxy