apache php7.1 Linux,如何使用Apache使用PHP7.1在AMI Linux上的本地Docker开发上连接到MySQL...

我一直在研究当地的Docker开发环境大约一周。我们更喜欢使用Ubuntu Linux或CentOS和RedHat上的Amazon Linux。

这是我迄今为止采取的步骤:

1)创建一个虚拟机来工作

docker-machine create --driver virtualbox default2)将我的终端连接到正在运行的虚拟机:

eval "$(docker-machine env default)"3)拉AMI Linux:

docker pull amazonlinux4)构建一个具有PHP 7.1和Apache 2.4的Dockerfile图像容器

/ AppFolder /搬运工/图像/ apachephp / AMI / Dockerfile

FROM amazonlinux

MAINTAINER Cameron Macfarlane

RUN yum update -y

RUN yum install httpd24 vim php71 php71-pdo php71-mbstring php71-pecl-imagick php71-opcache -y

EXPOSE 80

# Start the service

CMD ["-D", "FOREGROUND"]

ENTRYPOINT ["/usr/sbin/httpd"5)将其编译为killacam / apachephp

docker build -t killacam/apachephp docker/images/apachephp/ami/.6)创建一个虚拟主机文件,将我的本地应用程序连接到文档根目录

/docker/vhost.cnf

ServerAdmin webmaster@local

DocumentRoot /var/www/html/public

ServerName docker.dev

Options Indexes FollowSymLinks MultiViews

AllowOverride All

Order allow,deny

allow from all

7)构建一个MySQL 5.6 Dockerfile(包含/ var / lib / mysql并显示端口3306)

/ AppFolder /搬运工/图像/ MySQL的/ AMI / Dockerfile

FROM amazonlinux

MAINTAINER Cameron Macfarlane

RUN yum update -y

RUN yum install mysql56-server -y

RUN chown -R mysql:root /var/lib/mysql/

EXPOSE 33068)将其编译为killacam / mysql

docker build -t killacam/mysql docker/images/mysql/ami/.9)为MySQL配置创建一个my.cnf文件(user = root是更改)

目前它位于AppFolder / my.cnf中

[mysqld]

user=root

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

sql-mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"字符集服务器= UTF8

10)创建一个docker-compose文件(版本2)

/AppFolder/docker-compose.yml

version: '2'

services:

apachephp:

image: killacam/apachephp

ports:

- "8080:80"

volumes:

- ./:/var/www/html

- ./docker/vhost.conf:/etc/httpd/conf.d/vhost.conf

networks:

- appnet

mysql:

image: killacam/mysql #mysql:5.6

ports:

- "3306:3306"

volumes:

- ./data/:/var/lib/mysql

- ./my.cnf:/etc/my.cnf

tty: true

networks:

- appnet

#environment:

#- "MYSQL_DATABASE=csg"

#- "MYSQL_USER=test"

#- "MYSQL_PASSWORD=qwe123"

#- "MYSQL_ROOT_PASSWORD=root"

networks:

appnet:

driver: "bridge"运行文件docker-compose up

当我在浏览器中打开docker.dev:8080时,出现数据库连接问题。到目前为止,我已经尝试了官方MySQL 5.6包和我自己定制的包。

我也试过像这样只运行killacam/mysql包:

docker run -it -p 3306:3306 -v $(pwd)/my.cnf:/etc/my.cnf killacam/mysql;

并用mysqld启动MySql,但我一直收到这个错误

[ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.user' doesn't exist

根据此处找到的AWS AMI说明http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/install-LAMP.html,您需要运行

sudo service mysqld start后跟sudo mysql_secure_installation

但是当您尝试运行这些命令时,它们将失败:sudo service mysqld start,因为AMI docker映像出于某种原因未附带init脚本。

那里的任何人都曾经设置过Docker在AMI上运行MySQL来进行本地开发,这可以帮助我解决问题吗?

谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值