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
相关推荐
程序员-珍2 小时前
虚拟机ip突然看不了了
linux·网络·网络协议·tcp/ip·centos
漫无目的行走的月亮4 小时前
在Docker中运行微服务注册中心Eureka
docker
Ljubim.te6 小时前
Linux基于CentOS学习【进程状态】【进程优先级】【调度与切换】【进程挂起】【进程饥饿】
linux·学习·centos
大道归简7 小时前
Docker 命令从入门到入门:从 Windows 到容器的完美类比
windows·docker·容器
苦逼IT运维7 小时前
YUM 源与 APT 源的详解及使用指南
linux·运维·ubuntu·centos·devops
zeruns8027 小时前
如何搭建自己的域名邮箱服务器?Poste.io邮箱服务器搭建教程,Linux+Docker搭建邮件服务器的教程
linux·运维·服务器·docker·网站
爱跑步的程序员~7 小时前
Docker
docker·容器
疯狂的大狗8 小时前
docker进入正在运行的容器,exit后的比较
运维·docker·容器
长天一色8 小时前
【Docker从入门到进阶】01.介绍 & 02.基础使用
运维·docker·容器
伊玛目的门徒8 小时前
docker 搭建minimalist-web-notepad
运维·docker·notepad