Linxu的CentOS系统从0部署docker和Docker Compose


要在 CentOS 系统上从零开始部署 Docker 和 Docker Compose,您可以按照以下步骤进行操作:

步骤 1:安装 Docker

1.更新系统软件包:

sudo yum update

2.安装所需的依赖包:

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

3.添加 Docker 的官方存储库:

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

4.安装 Docker 引擎:

sudo yum install docker-ce docker-ce-cli containerd.io

5.启动 Docker 服务并设置开机自启:

sudo systemctl start docker
sudo systemctl enable docker

6.验证 Docker 安装是否成功:

sudo docker run hello-world

步骤 2:安装 Docker Compose

1.下载 Docker Compose 的二进制文件:

sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

2.添加执行权限:

sudo chmod +x /usr/local/bin/docker-compose

3.创建符号链接:

sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

4.验证 Docker Compose 安装是否成功:

docker-compose --version

现在,您已经成功在 CentOS 系统上部署了 Docker 和 Docker Compose。您可以使用 Docker 和 Docker Compose 运行和管理容器化应用程序。

步骤三:一键用docker部署多个应用

在/usr/local/bin/docker-compose里找到docker-compose.yaml 文件

Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。它使用一个 YAML 文件来配置您的应用程序的服务、网络和卷等。

以下是一个示例的 Docker Compose 文件,包含您提到的所有服务:

version: '3'
services:
  mysql:
    image: mysql:5.7
    restart: always
    command: --bind-address=0.0.0.0
    environment:
      - MYSQL_ROOT_PASSWORD=root
    volumes:
      - /mydata/mysql/log:/var/log/mysql
      - /mydata/mysql/data:/var/lib/mysql
      - /mydata/mysql/conf:/etc/mysql
    ports:
      - 3306:3306
      
  redis:
    image: redis
    restart: always

  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.6.2
    restart: always
    environment:
      - discovery.type=single-node

  kibana:
    image: docker.elastic.co/kibana/kibana:7.6.2
    restart: always

  rabbitmq:
    image: rabbitmq:3.8.5-management
    restart: always
    ports:
      - "5672:5672"
      - "15672:15672"

  nginx:
    image: nginx
    restart: always
    ports:
      - "80:80"

将上述内容保存为 docker-compose.yaml 文件。然后,在保存文件的目录中,打开终端,并运行以下命令来启动这些服务:

docker-compose up -d

Docker Compose 将自动下载所需的镜像并启动每个服务。加上 -d 参数会使服务在后台运行。

4.部署成功后

1.镜像相关命令:

  • docker images:列出本地主机上的所有镜像。
  • docker pull image_name:tag:从 Docker 镜像仓库中下载指定的镜像。
  • docker build -t image_name:tag .:根据 Dockerfile 构建一个新的镜像。
  • docker push image_name:tag:将镜像推送到 Docker 镜像仓库。

2.容器相关命令:

  • docker run image_name:tag:根据指定的镜像创建并启动一个容器。
  • docker ps:列出正在运行的容器。
  • docker start container_id:启动一个已停止的容器。
  • docker stop container_id:停止一个运行中的容器。
  • docker restart container_id:重启一个容器。
  • docker rm container_id:删除一个已停止的容器。
  • docker exec -it container_id command:在运行的容器中执行命令。

3.日志和监控命令:

  • docker logs container_id:查看容器的日志输出。
  • docker stats:实时监控正在运行的容器的资源使用情况。
  • docker top container_id:查看容器中正在运行的进程。

4.网络和卷命令:

  • docker network ls:列出 Docker 网络。
  • docker network create network_name:创建一个自定义网络。
  • docker volume ls:列出 Docker 卷。
  • docker volume create volume_name:创建一个 Docker 卷。

需要关闭Linxu防火墙

如果你使用的是 firewalld,以下是一些常见的 firewalld 命令:

启动 firewalld 服务:

sudo systemctl start firewalld

停止 firewalld 服务:

sudo systemctl stop firewalld

重启 firewalld 服务:

sudo systemctl restart firewalld

查看 firewalld 服务状态:

sudo systemctl status firewalld

在系统启动时启用 firewalld 服务:

sudo systemctl enable firewalld

在系统启动时禁用 firewalld 服务:

sudo systemctl disable firewalld

开放端口(例如,允许 TCP 端口 80):

sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --reload

关闭端口(例如,关闭 TCP 端口 80):

sudo firewall-cmd --zone=public --remove-port=80/tcp --permanent
sudo firewall-cmd --reload

查看所有打开的端口:

sudo firewall-cmd --zone=public --list-ports

打开权限

mysql已启动,端口也没有被占用
1、已经在容器里面测试了,mysql可以正常连接;在试试将root用户开放可以任何主机访问
1.1、进入容器,并连接mysql
docker exec -it 容器名/id bash
mysql -uroot -proot
2.2、将root用户开放所有主机可以访问

 #授权
grant all privileges on test.* to 'root'@'%';
#刷新权限表
flush privileges; 

  目录