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
相关推荐
eight *2 小时前
docker部署elk+filebeat日志收集分析系统
elk·docker·容器
自己的九又四分之三站台4 小时前
docker安装pgvector、age和postgis
运维·docker·容器
幺零九零零5 小时前
Docker底层-IPC Namespace(进程间通信隔离)
运维·docker·容器
V胡桃夹子5 小时前
Docker快速部署apollo
运维·docker·容器
oMcLin6 小时前
如何利用 Podman 替代 Docker:无 root 权限的容器管理实践
docker·dubbo·podman
程序员老赵8 小时前
ComfyUI Docker 镜像部署指南
人工智能·docker·aigc
会飞的土拨鼠呀8 小时前
Docker 部署开源蜜罐Cowrie
docker·容器·开源
我是谁??8 小时前
Rocky9.2离线安装docker和NVIDIA Container Toolkit训练环境搭建
运维·docker·容器
oMcLin9 小时前
如何在 Linux 上的 aaPanel 中使用 Docker 部署 WordPress 博客:从配置到上线一站式教程
linux·运维·docker
无心水9 小时前
【神经风格迁移:工程化】27、神经风格迁移全栈进阶实战:Docker容器化与K8s部署,从单机到云原生
docker·云原生·架构·神经风格迁移·docker容器化·ai部署·vgg算法