Centos 7 部署Docker CE和docker-compose教程

一、Docker CE

1、Docker CE 安装

①、安装依赖包

bash 复制代码
yum install -y yum-utils device-mapper-persistent-data lvm2

②、设置yum源

bash 复制代码
# 官方源(二选一)
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

③、生成并更新系统中的软件包缓存

bash 复制代码
yum makecache fast

④、安装、启动、并设置Docker开机自启

bash 复制代码
# 安装 Docker
yum install -y docker-ce

# 启动 Docker
systemctl start docker.service

# 设置 Docker 开机自启
systemctl enable docker.service

# 查看版本
docker version

2、Docker 常用命令

  • Docker 启动命令
bash 复制代码
# 启动docker
systemctl start docker.service

# 停止docker
systemctl stop docker.service

# 重启docker
systemctl restart docker.service

# 查看docker状态
systemctl status docker.service
  • Docker 容器命令
bash 复制代码
# 列出正在运行的容器
docker ps

# 列出所有的容器,包括正在运行和已经停止的容器
docker ps -a

# 启动容器
docker start <容器ID>

# 停止容器
docker stop <容器ID>

# 重启容器
docker restart <容器ID>

# 移除容器(移除容器前需要先停止容器)
docker rm <容器ID>

# 进入容器
docker exec -it <容器名称或容器ID> /bin/bash

# 修改容器名称
docker rename <旧容器名称> <新容器名称>

# 将宿主机上的文件复制到容器内
docker cp <本地文件路径> <容器ID>:<容器目标路径>

# 从容器内将文件复制到宿主机上
docker cp <容器ID>:<容器文件路径> <本地目标路径>

# 查看容器的日志
docker logs <容器ID>
  • Docker 镜像命令
bash 复制代码
# 列出所有本地镜像 (包含镜像名称和ID)
docker images

# 搜索远程镜像库中的镜像,可以根据镜像名称过滤搜索结果
docker search <name>

# 从远程镜像库中拉取一个镜像到本地。指定版本" 镜像名称:7.1.1 "
docker pull <name>

# 删除一个本地镜像 (删除前需要先移除正在使用该镜像的容器,包括运行中和停止中的)
docker rmi <镜像名称 或 ID>

3、Docker 镜像源配置

  • 可选。Docker 官方提供的默认镜像源位于海外,可能下载会很慢,可以通过配置国内的镜像源,加速下载。

①、使用文本编辑器创建一个新的配置文件

bash 复制代码
mkdir /etc/docker/ (没有就手动创建文件夹)
vim /etc/docker/daemon.json

②、添加 Docker 配置信息。例如,要设置镜像加速源为阿里云的镜像加速器,可以添加以下内容:

powershell 复制代码
{
  "registry-mirrors": ["https://<阿里云镜像加速器地址>"]
}

③、重启Docker守护进程以使更改生效

bash 复制代码
systemctl daemon-reload
systemctl restart docker

获取方法:

1、进入阿里云容器镜像服务页面

2、在左侧导航栏中选择" 镜像工具-镜像加速器 "


二、docker-compose

Docker Compose是一个用于定义和运行多容器Docker应用程序的工具。它使用YAML文件来配置应用程序的服务、网络和卷,并使您能够使用单个命令一次性启动、停止和管理整个应用程序。

为什么要使用Docker Compose:

  • 简化部署:Compose允许您将整个应用程序作为一个整体进行部署,而不是单独地处理每个容器。这样可以大大简化部署流程,减少配置错误和问题。
  • 提高可维护性:通过将应用程序的配置与代码分离,并使用版本控制来管理,您可以更好地跟踪和管理应用程序的变化。这提高了可维护性,并使团队更容易协作。
  • 加速开发周期:Compose使得在本地开发环境中快速启动和停止应用程序变得非常容易。这样,开发人员可以更快地进行测试、调试和迭代,从而加速开发周期。

总之,Docker Compose是一个强大的工具,可帮助您定义、运行和管理多容器Docker应用程序。它简化了部署过程,提高了可维护性,并加速了开发周期。

1、docker-compose 安装

①、下载并安装Docker Compose, 加速器无法使用时,请去掉https://ghproxy.com/部分,直接在github下载

bash 复制代码
curl -L "https://ghproxy.com/https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

②、赋予执行权限

bash 复制代码
chmod +x /usr/local/bin/docker-compose

③、查看版本

bash 复制代码
docker-compose -v

2、docker-compose 常用命令

bash 复制代码
# 以下命令需要在 docker-compose.yaml 文件路径下执行

# 启动应用程序 (根据配置文件启动整个应用程序,并将日志输出到控制台)
docker-compose up

# 启动应用程序并在后台运行(启动应用程序,但将其放在后台运行,不将日志输出到控制台)
docker-compose up -d

# 停止应用程序 (停止运行中的应用程序,并移除相关的容器、网络和卷)
docker-compose down

# 查看应用程序的状态(显示当前正在运行的容器以及它们的状态)
docker-compose ps

# 查看应用程序的日志(查看应用程序中所有容器的日志)
docker-compose logs

3、docker-compose.yaml 模板示例

yaml 复制代码
version: '3'

services:
  onlyoffice:
    container_name: OnlyOffice
    image: onlyoffice/documentserver
    restart: always
    ports:
      - 8088:80
    environment:
      TZ: Asia/Shanghai
      JWT_SECRET: my_jwt_secret
    volumes:
      - /app/onlyoffice/DocumentServer/logs:/var/log/onlyoffice
      - /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data
      - /app/onlyoffice/DocumentServer/lib:/var/lib/onlyoffice
      - /app/onlyoffice/DocumentServer/db:/var/lib/postgresql
yaml 复制代码
version: '3' Docker Compose文件的版本号,指定了该文件的语法和规范。

services: 表示定义的服务列表开始。

onlyoffice: 定义一个服务名称为onlyoffice。

container_name: OnlyOffice 指定了该服务生成的容器的名称为OnlyOffice。

image: onlyoffice/documentserver 指定了使用的镜像,即OnlyOffice DocumentServer的镜像。

restart: always 表示容器在退出或重启时会自动重新启动。

ports: 指定容器的端口映射关系,将容器的80端口映射到主机的8088端口上。

environment: 定义容器的环境变量。

	TZ: Asia/Shanghai 设置容器的时区为Asia/Shanghai。
	JWT_SECRET: my_jwt_secret 设置JWT的密钥为my_jwt_secret。

volumes: 挂载点配置,将主机上的目录与容器内的目录进行映射,实现数据持久化。

	将主机上的/app/onlyoffice/DocumentServer/logs目录挂载到容器的/var/log/onlyoffice目录。
	将主机上的/app/onlyoffice/DocumentServer/data目录挂载到容器的/var/www/onlyoffice/Data目录。
	将主机上的/app/onlyoffice/DocumentServer/lib目录挂载到容器的/var/lib/onlyoffice目录。
	将主机上的/app/onlyoffice/DocumentServer/db目录挂载到容器的/var/lib/postgresql目录。

三、卸载

1、停止Docker服务

bash 复制代码
systemctl stop docker.service

2、移除Docker CE软件包

bash 复制代码
yum remove -y docker-ce docker-ce-cli containerd.io

3、删除Docker数据目录(如果需要)

bash 复制代码
rm -rf /var/lib/docker

4、如果您已经使用Docker Compose,则需要删除Compose二进制文件

bash 复制代码
# 删除 (输入y)
rm /usr/local/bin/docker-compose

5、删除Docker存储库的yum源

bash 复制代码
# 可先备份保留
cp /etc/yum.repos.d/docker-ce.repo /etc/yum.repos.d/docker-ce.repo.bak
# 删除 (输入y)
rm /etc/yum.repos.d/docker-ce.repo
相关推荐
功德+n18 分钟前
Linux下安装与配置Docker完整详细步骤
linux·运维·服务器·开发语言·docker·centos
小敬爱吃饭1 小时前
Ragflow Docker部署及问题解决方案(界面为Welcome to nginx,ragflow上传文件失败,Docker中的ragflow-cpu-1一直重启)
人工智能·python·nginx·docker·语言模型·容器·数据挖掘
杨云龙UP1 小时前
从0到1快速学会Linux操作系统(基础),这一篇就够了!
linux·运维·服务器·学习·ubuntu·centos·ssh
木子欢儿1 小时前
Docker Hub 镜像发布指南
java·spring cloud·docker·容器·eureka
coppher2 小时前
Ubuntu 22.04 amd64 离线安装 Docker 完整教程
linux·docker
bloglin999995 小时前
docker logs 如何一直监听日志输出
运维·docker·容器
说实话起个名字真难啊6 小时前
Docker 入门之网络基础
网络·docker·php
❀͜͡傀儡师6 小时前
使用 Docker 部署 Neko 自托管虚拟浏览器(Firefox)
docker·容器·firefox
0xDevNull7 小时前
Linux Docker 安装与使用详细教程
linux·运维·docker
工具罗某人7 小时前
docker compose 部署MySQL InnoDB Cluster + Router 高可用集群-亲测可用
mysql·docker·容器