• Docker 安装
执行 Docker 安装命令
curl -fsSL https://get.docker.com/ | sh
启动 Docker 服务
sudo service docker start
查看 Docker 是否正常工作
sudo service docker status
更改用户权限
sudo groupadd docker # 新建用户组
sudo gpasswd -a $USER docker #将登录用户加入docker组
newgrp docker #更新用户组
查看当前镜像
docker images
搜索可用镜像
docker search 名称
下载镜像
docker pull 名称
启动当前镜像
docker run -it -d -p 8000:80 镜像编号/名称 /bin/sh
-it #表示用终端操控
-d #表示后台运行
-p #表示把容器的 80 端口映射到 物理机的 8000 端口
查看当前运行容器
docker ps
停止当前运行容器
docker stop 容器编号
进入容器内部
docker exec -it 容器编号 bash
  • apache2搭建

搜索有关于 apache2 的容器

docker search apache2
这里选用第一个的 ubuntu + apache2 环境
下载镜像
docker pull ubuntu/apache2
查看镜像
docker images
启动 ubuntu/apache2 容器
docker run -it -d -p 8000:80 ubuntu/apache2:latest /bin/sh
并查看当前活跃容器
进入容器内部
docker exec -it 2af38a bash
开启 apache2 服务
service apache2 start
可以看到成功启动 apache2 服务
在物理机上访问
localhost:8000
可以看到 apache2 成功运行
在首页下新建php文件
vim /var/www/html/1.php
# /var/www/html 是网站文件存放路径
如果 vim 提示未安装,则需要先安装
apt update #更新
apt install vim #安装 vim
1.php 内容如下
<?php phpinfo(); ?>
访问
localhost:8000/1.php
会发现不解析 php
 
 
  • php 搭建
在容器内部直接安装php
apt install php apt install php-mysql
重启 apache2 服务
service apache2 restart
成功解析 php 代码
 
  • MySQL 搭建
ctrl +d 回到物理机终端
同 apache2 安装 MySQL(这里以MySQL8为例)
运行 MySQL 容器
docker run -it -d -p 3000:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql(编号) /bin/sh
# -e 默认mysql账号 root 密码 123456
进入 MySQL 容器,并开启 MySQL 服务
docker exec -it 4fc917 bash service mysql start
接下来 配置 MySQL
进入MySQL
mysql -u root -p
# 或者
mysql
可以直接进入 mysql
更改账号密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
或者可以参试以下方法更改账号密码
cat /etc/mysql/debian.cnf 用debian.cnf里面的用户名和密码来登录
use mysql; ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
FLUSH PRIVILEGES;
sudo service mysql restart
创建远程用户并赋予权限
CREATE USER 'admin'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%';
物理机访问 MySQL,不出意外是能成功访问 Docker 容器内的 MySQL
mysql -uadmin -p123456 -h本机ip -P3000
同理,php访问mysql也是 ip+端口号 这种方式
注:MySQL搭建这部分的更改账号密码可能会出现意外,可以去网上寻找其它方法
 
 
这里我为什么不在 ubutn/apache2 容器内部署mysql或者直接用lamp呢,这是因为我尝试了几次,发现,如果 apache2 和 mysql 在同一个容器内,那么 apache2 或者 mysql 总是启动不成功,所以就用了 MySQL独占一个容器的方法。
 
 
附:部署文件上传题目的时候,要更改文件上传的目录所属,否则文件上传不上去
chown -R www-data:www-data /var/www/upload

Docke 搭建 apache2 + php8 + MySQL8 环境的更多相关文章

  1. Mac下docker搭建lamp本地开发环境

    1.先在Mac上下载docker:官网下载:下载地址(选择mac版本下载,可能速度较慢) DaoCloud下载:下载地址(速度较快,可能版本较低) 2.装完之后打开: 3.检查一下是否下载成功: $  ...

  2. 使用docker搭建selenium grid 分布式环境

    本文章只做docker搭建selenium grid 分布式环境步骤说明,对于selenium grid中的参数.流程.原理等不做说明.selenium grid的详细情况可查看官方文档https:/ ...

  3. 史上最全Windows版本搭建安装React Native环境配置

    史上最全Windows版本搭建安装React Native环境配置 配置过React Native 环境的都知道,在Windows React Native环境配置有很多坑要跳,为了帮助新手快速无误的 ...

  4. 用grunt搭建web前端开发环境

    1.前言 本文章旨在讲解grunt入门,以及讲解grunt最常用的几个插件的使用. 2.安装node.js Grunt和所有grunt插件都是基于nodejs来运行的,如果你的电脑上没有nodejs, ...

  5. Windows下搭建Spark+Hadoop开发环境

    Windows下搭建Spark+Hadoop开发环境需要一些工具支持. 只需要确保您的电脑已装好Java环境,那么就可以开始了. 一. 准备工作 1. 下载Hadoop2.7.1版本(写Spark和H ...

  6. windows和linux中搭建python集成开发环境IDE——如何设置多个python环境

    本系列分为两篇: 1.[转]windows和linux中搭建python集成开发环境IDE 2.[转]linux和windows下安装python集成开发环境及其python包 3.windows和l ...

  7. 使用IntelliJ IDEA 13搭建Android集成开发环境(图文教程)

    ​[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...

  8. 【转】windows和linux中搭建python集成开发环境IDE

    本系列分为两篇: 1.[转]windows和linux中搭建python集成开发环境IDE 2.[转]linux和windows下安装python集成开发环境及其python包 3.windows和l ...

  9. ubuntu-14.04服务器版下搭建apache2+svn+svnmanager服务

    本人linux小白,新进公司,被分配此任务,好崩溃,只能一边百度linux命令一边完成任务.从装系统开始一直到搭建好服务,也快一周了,足见水平之差,以下博文基本靠网络,再加上自己的摸索,直至搭建成功. ...

随机推荐

  1. 在 4GB 物理内存的机器上,申请 8G 内存会怎么样?

    作者:小林coding 计算机八股文刷题网站:https://xiaolincoding.com/ 大家好,我是小林. 看到读者在群里讨论这些面试题: 其中,第一个问题「在 4GB 物理内存的机器上, ...

  2. php三行代码解决输入地址给出经纬度

    //获取地址经纬度坐标 public function getAddress() { $ak = 'GPIrsdfZ-UNLRP-VBBDB-V3AGK-XL5KO-5DBNY'; $address  ...

  3. ExtJS 布局-Accordion布局(Accordion layout)

    更新记录: 2022年6月2日 开始. 2022年6月3日 发布. 1.说明 accordion(手风琴)布局一次仅显示一个子组件,内置支持 折叠 和 展开.当需要堆叠多个子组件,并每次只显示一次时, ...

  4. 158_模型_Power BI 使用 DAX + SVG 打通制作商业图表几乎所有可能

    158_模型_Power BI 使用 DAX + SVG 打通制作商业图表几乎所有可能 一.背景 最近对 Power BI 中使用 SVG 比较感兴趣,今天我们使用 DAX + SVG 复刻一下 Ze ...

  5. netty系列之:在netty中使用native传输协议

    目录 简介 native传输协议的依赖 netty本地传输协议的使用 总结 简介 对于IO来说,除了传统的block IO,使用最多的就是NIO了,通常我们在netty程序中最常用到的就是NIO,比如 ...

  6. ShardingSphere-proxy-5.0.0企业级分库分表、读写分离、负载均衡、雪花算法、取模算法整合(八)

    一.简要说明 以下配置实现了: 1.分库分表 2.每一个分库的读写分离 3.读库负载均衡算法 4.雪花算法,生成唯一id 5.字段取模 二.配置项 # # Licensed to the Apache ...

  7. NC16660 [NOIP2004]FBI树

    NC16660 [NOIP2004]FBI树 题目 题目描述 我们可以把由"0"和"1"组成的字符串分为三类:全"0"串称为B串,全&quo ...

  8. SpringMVC指定配置文件位置和名称,控制Servlet的加载时间

    1. 2.

  9. 最著名的著名的比特币BTC钱包地址-中本聪的钱包

    最著名的著名的比特币BTC钱包地址-中本聪的钱包1.比特币创始人中本聪 1PTFYUG6nCzRrByoRfGT5kefUNuZjNF84o这个地址还是比特币的创世地址,比特币从未移动过,其中的50币 ...

  10. 挑战30天写操作系统-day2-汇编语言学习与Makefile入门

    1.介绍文本编辑器 这里,我们直接采用自己windows电脑自带的文本编辑器即可以完成制作要求 2.继续开发 下面先是对昨天使用的helloos.nas文件内容进行详细解释 ; hello-os ; ...