1.安装相关软件包

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

2.安装Python包管理工具pip

curl https://bootstrap.pypa.io/pip/2.7/get-pip.py -o get-pip.py

运行以下命令来安装pip

python get-pip.py

查看pip是否安装成功

pip --version

3.安装docker-compose

pip install docker-compose
pip install --ignore-installed requests

查看安装的docker-compose版本

docker-compose -v

返回版本信息

/usr/lib/python2.7/site-packages/paramiko/transport.py:33: CryptographyDeprecationWarning: Python 2 is no longer supported by the Python core team. Support for it is now deprecated in cryptography, and will be removed in the next release.
  from cryptography.hazmat.backends import default_backend
docker-compose version 1.26.2, build unknown

4、创建docker-compose文件并编辑脚本

vim /etc/docker/docker-compose.yml

编辑要拉取的docker镜像

例如 nginx:1.26 php:7.4-fpm mysql:5.7.40

version: '3.8'

services:
  nginx:
    image: nginx:1.26  # 使用nginx镜像的1.26版本
    ports:
      - "80:80"  # 将主机的80端口映射到容器的80端口
    volumes:
      - /usr/local/nginx/nginx.conf:/etc/nginx/nginx.conf  # 挂载nginx配置文件
      - /data/www/html:/var/www/html  # 挂载网站文件目录
    depends_on:
      - php  # 依赖于php服务启动
    networks:
      - lnmp_network  # 连接到lnmp_network网络

  php:
    image: php:7.4-fpm  # 使用php镜像的7.4-fpm版本
    volumes:
      - /data/www/html:/var/www/html  # 挂载网站文件目录
    networks:
      - lnmp_network  # 连接到lnmp_network网络

  mysql:
    image: mysql:5.7.40  # 使用mysql镜像的5.7.40版本
    environment:
      MYSQL_ROOT_PASSWORD: test123  # 设置MySQL的root密码
      MYSQL_DATABASE: test  # 创建名为test的数据库
    networks:
      - lnmp_network  # 连接到lnmp_network网络

networks:
  lnmp_network:
    driver: bridge  # 使用bridge网络驱动器创建lnmp_network网络

文件挂载指令:在左侧的路径是主机目录,右侧的路径是容器内的目录

5.执行docker-compose脚本

cd /etc/docker  #进入到docker-compose目录下
docker-compose up -d  #执行脚本

等待脚本执行完成。。。

6.查看容器是否创建

docker ps

有下列进程信息

CONTAINER ID   IMAGE          COMMAND                  CREATED      STATUS      PORTS                               NAMES
1e9bae72222a   nginx:1.26     "/docker-entrypoint.…"   5 days ago   Up 3 days   0.0.0.0:80->80/tcp, :::80->80/tcp   docker_nginx_1
5a6aa925c8c3   mysql:5.7.40   "docker-entrypoint.s…"   5 days ago   Up 3 days   3306/tcp, 33060/tcp                 docker_mysql_1
004186b47e95   php:7.4-fpm    "docker-php-entrypoi…"   5 days ago   Up 3 days   9000/tcp                            docker_php_1

7.验证容器是否正常运行

①验证nginx:

浏览器中输入 http://[服务器ip地址] 成功访问nginx欢迎页面

②验证mysql

进入mysql容器

docker exec -it docker_mysql_1 /bin/bash

登录mysql

mysql -u root -p

输入账号密码后成功进入数据库

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 993
Server version: 5.7.40 MySQL Community Server (GPL)

Copyright (c) 2000, 2022, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

用以下命令查看是否存在docker-compose脚本创建的数据库

show databases;

结果如下:

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| test               |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

以上说明数据库成功运行

③验证php

创建一个index.php在nginx宿主机的网站目录下

<?php
phpinfo();
?>

同时nginx配置文件中添加php处理块

 location ~ \.php$ {
        include fastcgi_params;
        fastcgi_pass php:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
					}

重启nginx后能正常访问php主页即可

更多推荐