Loading

Linux下安装Docker

一、前言-为什么主讲CentOS安装Docker?

Ubuntu、RHEL、Debian、Arch可以直接参考 Docker中文网菜鸟教程
CentOS教程中菜鸟教程将不建议用于生产环境的便捷脚本排序较高;docker中文网推荐在CentOS下创建一个ubuntu的虚拟机并在里面运行docker……
故本文主讲在CentOS 7下安装Docker。资料整理自 Docker官网菜鸟教程
windows下启动Docker Desktop自带的kubernetes比较多坑,这篇比较完整https://www.jianshu.com/p/e5c056baa8ab

二、系统要求

CentOS 7 或者 CentOS 8
必须启用centos-extras库。如果被禁用了,则需要重新启用它。

# 禁用
$ yum-config-manager --disable centos-extras
# 启用
$ yum-config-manager --enable centos-extras

三、卸载旧版本

旧版 Docker引擎称为 docker 或 docker-engine,现 Docker引擎软件包称为docker-ce,为避免冲突卸载旧版docker依赖,新版可以直接安装升级

# 卸载旧版docker,防止冲突
$ sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine
# 卸载新版docker并删除文件,新版的版本升级不需要卸载
$ sudo yum remove docker-ce docker-ce-cli containerd.io
# 主机上的映像,容器,卷或自定义配置文件不会自动删除,自行选择是否删除
$ sudo rm -rf /var/lib/docker

四、安装方式

1. 存储库安装,官方推荐,大部分用户使用,简便

# yum-utils 提供 yum-config-manager指令,device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2
sudo yum install -y yum-utils  device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 国内用户推荐 修改为阿里云仓库加速下载
# sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 可选 启用nightly(最新)存储库,可能需要克服一些不稳定和bug
# sudo yum-config-manager --enable docker-ce-nightly
# 可选 启用test(测试)存储库
# sudo yum-config-manager --enable docker-ce-test

# 安装最新版docker引擎和容器
sudo yum install docker-ce docker-ce-cli containerd.io
# 可选 选择查看可选版本
# yum list docker-ce --showduplicates | sort -r
# 可选 安装指定版本
# sudo yum install docker-ce-18.09.1 docker-ce-cli-18.09.1 containerd.io

# 如果启用了多个 Docker 仓库,则在未指定版本时,将始终安装或更新最高版本。
# 此时Docker已安装但尚未启动。
# 可选 添加当前用户到docker组,不再需要每次sudo
# sudo usermod -aG docker $USER

# 启动docker
sudo systemctl start docker
# 运行hello-world镜像以验证
sudo docker run hello-world

2. 软件包安装。下载.npm 手动安装。每次要升级Docker引擎时,都需要下载一个新文件

  转到https://download.docker.com/linux/centos/ 并选择您的CentOS版本。然后浏览x86_64/stable/Packages/ 并下载您要安装的Docker版本的.rpm文件。
# 创建目录并下载
mkdir -p /usr/local/docker
cd /usr/local/docker
wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-cli-19.03.9-3.el7.x86_64.rpm -O package.rpm

# 安装docker引擎 /usr/local/docker路径可自由修改
sudo yum install /usr/local/docker/package.rpm
# 启动与验证
sudo systemctl start docker
sudo docker run hello-world

3. 使用便捷脚本

不建议在生产环境中使用这些脚本,并且在使用它们之前,您应该了解潜在的风险:

  • 脚本需要运行root或具有sudo特权。因此,在运行脚本之前,应仔细检查和审核脚本。
  • 这些脚本尝试检测Linux发行版和版本,并为您配置软件包管理系统。此外,脚本不允许您自定义任何安装参数。从Docker的角度或您自己组织的准则和标准的角度来看,这可能导致不支持的配置。
  • 这些脚本将安装软件包管理器的所有依赖项和建议,而无需进行确认。根据主机的当前配置,这可能会安装大量软件包。
  • 该脚本未提供用于指定要安装哪个版本的Docker的选项,而是安装了在“ edge”通道中发布的最新版本。
  • 如果已使用其他机制将Docker安装在主机上,请不要使用便捷脚本。

警告!在本地运行它们之前,请务必检查从Internet下载的脚本!

# 官方脚本
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
# 国内daocloud脚本
curl -sSL https://get.daocloud.io/docker | sh

4.笔者自用的docker安装脚本,不想了解细节的直接复制执行

yum install -y yum-utils wget
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install -y docker-ce docker-ce-cli containerd.io

touch /etc/docker/daemon.json
cat>/etc/docker/daemon.json<< EOF
{
    "registry-mirrors": ["https://dockerhub.azk8s.cn"],
    "log-driver":"json-file",
    "log-opts": {"max-size":"500m", "max-file":"3"}
}
EOF

systemctl daemon-reload
systemctl start docker
systemctl enable docker

wget -O /usr/local/bin/docker-compose "https://github.com/docker/compose/releases/download/1.28.5/docker-compose-$(uname -s)-$(uname -m)"
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

五、Docker Compose工具

Compose是用于定义和运行多容器Docker应用程序的工具。通过Compose,您可以使用YAML文件来配置应用程序的服务。然后,只要使用一个命令,就可以从配置中创建并启动所有服务。

# 前往https://github.com/docker/compose/releases查看选择版本
# 下载1.28.5版本到/usr/local/bin/中,并指定名字为docker-compose
wget -O /usr/local/bin/docker-compose "https://github.com/docker/compose/releases/download/1.28.5/docker-compose-$(uname -s)-$(uname -m)"
# 赋予文件可执行权限
sudo chmod +x /usr/local/bin/docker-compose
# 添加软连接
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
# 验证安装是否完成
docker-compose --version

如果要从Compose 1.2或更早版本进行升级,请在升级Compose之后删除或迁移现有容器。这是因为从1.3版开始,Compose使用Docker标签来跟踪容器,并且需要重新创建容器以添加标签。
如果Compose检测到创建的没有标签的容器,它将拒绝运行,这样您就不会最终获得两组标签。如果要继续使用现有容器(例如,因为它们具有要保留的数据量),则可以使用Compose 1.5.x通过以下命令迁移它们:

docker-compose migrate-to-labels

另外,如果您不担心保留它们,可以将其删除。撰写只是创建新的。
docker container rm -f -v myapp_web_1 myapp_db_1...

如果需要卸载
sudo rm /usr/local/bin/docker-compose

该工具用户手册,参考菜鸟教程 Docker Compose

六、国内镜像加速

# 创建docker的配置文件
touch /etc/docker/daemon.json
# 命令行直接执行,添加了国内镜像并限制日志大小
cat > /etc/docker/daemon.json << EOF
{
    "registry-mirrors": ["https://dockerhub.azk8s.cn"],
    "log-driver":"json-file",
    "log-opts": {"max-size":"500m", "max-file":"3"}
}
EOF

# 重启docker生效
systemctl daemon-reload
systemctl restart docker

七、修改默认配置,如镜像存储位置

centos7 修改docker.service
参考Docker如何修改默认镜像存储位置

八、设置开机自启

# centos7下命令行直接执行
systemctl enable docker
# centos6下,编辑/etc/rc.local文件追加
service docker start
posted @ 2020-07-02 11:00  寒烟濡雨  阅读(535)  评论(0编辑  收藏  举报

Loading