使用Docker搭建Apache+PHP+mysql+ssh环境

1.Docker安装

  • docker安装参考网上教程。

2.CentOS服务器环境搭建

2.1启动Docker容器

  • 保证容器已经打开,本人使用的是Docker for Windows,双击Docker Desktop图标运行,并打开PowerShell(推荐)或CMD

2.2获取centos镜像

  • 输入如下命令查找Docker Hub上的centos镜像
docker search centos
查找centos镜像
  • 这里我们拉取官方的镜像,默认最新,如需其他版本,输入格式为:docker pull centos:6
docker pull centos
  • 等待下载完成后,我们就可以输入docker images centos在本地镜像列表里查到REPOSITORYcentos的镜像。
    查看centos本地镜像

2.3运行CentOS容器

  • 使用如下命令运行centos容器
docker run -itd -p 2222:22 -p 8888:80 --privileged=true -v /sys/fs/cgroup:/sys/fs/cgroup 9f38484d220f /usr/sbin/init /bin/bash
  • docker: Docker 的二进制执行文件。
    run:与前面的 docker 组合来运行一个容器。
    -d:让容器在后台运行。
    -p:将容器内部使用的网络端口映射到我们使用的主机上。
    -t:在新容器内指定一个伪终端或终端。
    -i:允许你对容器内的标准输入 (STDIN) 进行交互。
    --privileged:以特权方式启动容器
    -v:挂载宿主机的一个目录
    9f38484d220f:指定要运行的镜像,镜像ID。
    /bin/bash: 在启动的容器里执行的命令这里进入bash这个shell。
  • 使用docker ps获取容器ID,我的为9ad6608450b4
  • 使用如下命令启动容器。
docker exec -it 9ad6608450b4 /bin/bash  
  • 现在可以发现我们已经进入了docker容器中,过程如下图所示。
    运行centos容器

2.4安装wget

  • centos为轻量级版本,很多包不会默认安装,使用wget 时提示 -bash:wget command not found,我们先安装wget包,下一步会用。
yum -y install wget

2.5安装mysql57-community-release-el7-8.noarch.rpm包

  • 此时,如果直接使用yum安装mysql-server会提示找不到包,因此我们先下载对应的源并安装rpm包。
cd /usr/local/src/
wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm
rpm -ivh mysql57-community-release-el7-8.noarch.rpm

2.6安装initscripts

  • 能解决下一步不能启动service问题
yum list | grep initscripts
yum install initscripts -y

2.7安装mysql

  • 使用yum安装mysql-server,并设置开机启动,以及开启服务,发现mysql还是无法使用,原来MariaDB代替了mysql数据库,所以再次安装mariadb-server即可解决,如果启用mysql出现ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)问题,输入vi /etc/my.cnfmy.cnf[mysqld]后面任意一行添加skip-grant-tables用来跳过密码验证的过程,并输入systemctl start mysqld.service重启mysql服务即可解决。
yum install -y mysql-community-server
yum install -y mariadb-server
systemctl enable mysqld.service         // 设置开机启动
systemctl start mysqld.service       // 启动mysql服务

2.8安装apache

  • 使用yum安装httpd,并设置开机启动,以及开启服务。
yum install httpd
systemctl enable httpd.service    // 设置开机启动
systemctl start httpd.service     // 启动httpd服务

2.8安装php

  • 使用yum安装php
yum install php
yum install php-mysql php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc

2.9安装ssh服务端

  • 使用yum安装ssh服务器,并设置开机启动,以及重启服务。
yum install openssh-server
systemctl restart sshd     // 重启ssh服务
systemctl enable sshd    // 设置开机启动

3.保存容器镜像

  • Ctrl+D或输入exit可以在不结束容器进程的情况下退出Bash,这时回到了Windows的命令行下,输入
docker ps
  • 查看正在运行的容器信息。


    当前运行的容器
  • 然后通过上面命令得到的容器ID来提交这个容器的修改。
docker commit ae4ea5ef11c5 centos:v2
  • 再次查看镜像。
docker images centos
  • 此时,修改的镜像已经保存,下次直接运行本镜像即可。


    查看centos镜像

4.备注

  • 到此为止,整个环境搭建就结束了,可以运行保存的镜像进行各种测试。
  • 启动了容器,可以使用sftp来进行主机与容器之间的数据传输。(我使用的xshell+xftp,绝对好用)
  • Apache网上有很多模板、源代码,可以用来学习,做好了直接使用xftp传入/var/www/html/文件目录即可。
  • 此教程为本人的学习总结,希望对你有所帮助。

你可能感兴趣的:(使用Docker搭建Apache+PHP+mysql+ssh环境)