coldsmog运维笔记
Linux 中间件部署
升级MySQL至最新版本
Zabbix与Zabbix-agent2部署
Galera-Cluster-MySQL 部署
JDK8 部署
FastDFS 部署
MySQL 主从备搭建
RabbitMQ 部署
Redis 部署
Nginx 部署
Gitlab + Jenkins + Sonarqube 部署
Docker 部署
keepalive的安装
Gitlab-ce 部署
Graalvm 部署
Nacos 部署
Kafka 部署
PostgreSQL 部署
MongoDB 部署
Fizz网关搭建
Vue项目部署(Nginx)
CentOS 运维笔记
centos 添加自定义服务
Linux 系统挂载
MySQL命令行
故障排查
Docker 运维笔记
keepalived 配置笔记
win 编辑EFI
win 安装 openclaw
本站点使用 MrDoc 构建
-
+
Docker 部署
[TOC] ## 一、前言-为什么主讲CentOS安装Docker? Ubuntu、RHEL、Debian、Arch可以直接参考 [Docker中文网](http://www.docker.org.cn/book/install.html)和[菜鸟教程](https://www.runoob.com/docker/docker-tutorial.html) CentOS教程中菜鸟教程将不建议用于生产环境的便捷脚本排序较高;docker中文网推荐在CentOS下创建一个ubuntu的虚拟机并在里面运行docker…… 故本文主讲在CentOS 7下安装Docker。资料整理自 [Docker官网](https://www.docker.org.cn/book/install/supported-platform-17.html)和[菜鸟教程](https://www.runoob.com/docker/centos-docker-install.html) windows下启动Docker Desktop自带的kubernetes比较多坑,这篇比较完整[https://www.jianshu.com/p/e5c056baa8ab](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 ``` ## 四、安装方式 ### 0. 笔者自用的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 ``` ### 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 ``` ## 五、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](https://www.runoob.com/docker/docker-compose.html) ## 六、国内镜像加速 ``` # 创建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如何修改默认镜像存储位置](https://www.cnblogs.com/yangww/p/11334895.html) ## 八、设置开机自启 ``` # centos7下命令行直接执行 systemctl enable docker # centos6下,编辑/etc/rc.local文件追加 service docker start ```
寒烟濡雨
2021年6月9日 10:10
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
PDF文档(打印)
分享
链接
类型
密码
更新密码