彷佛在菜鸟教程上的Deckfile运用,是不须要这步的。(Deckfile内的FROM指令会自动拉取源镜像而后展开配置)php
但参考大佬的范例,这步应该为了得到web存放目录的相关配置文件,即后面的defualt.conf。html
能够看到上面有咱们所须要修改的信mysql
彷佛其中的echo指令格式错了,修改后即成功nginx
在浏览器访问web服务时发生错误...很是悲催web
镜像是存在的,相关容器也有开启,端口也不存在占用问题,花了好久都没发现问题。一直觉得是端口8080:8080的映射问题。sql
后来从新检查配置文件发现,实际上是路径写错误了...应该放在讲defualt.conf文件放在etc/nginx/conf/里面docker
修改后成功数据库
附:Dockerfile和deflaut配置文件浏览器
Dockfile:bash
FROM nginx #MAINTAINER IFORMATION MAINTAINER jayer@xiajibaxie.com #WORKDIR WORKDIR /usr/mynginx/ #CONFIGURATION COPY default.conf /etc/nginx/conf.d/ #INDEX RUN echo "This is jayer'nginx images" >> /usr/mynginx/index.html #EXPOSE EXPOSE 8080
defualt.conf:
server { listen 8080; server_name localhost; #charset koi8-r; #access_log /var/log/nginx/host.access.log main; location / { root /usr/mynginx/; index index.html index.htm; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location ~ \.php$ { # proxy_pass http://127.0.0.1; #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # #location ~ \.php$ { # root html; # fastcgi_pass 127.0.0.1:9000; # fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; # include fastcgi_params; #} # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location ~ /\.ht { # deny all; #} }
查看日志追根溯源发现应该是在schema.sql文件里面,那里的表格名字写错了
。。。成功后的日志文件
附:Dockerfile和相关配置文件
Dockerfile:
FROM mysql:5.7 #MAINTAINER INFORMATION MAINTAINER jayer@xiajibaxie.com #EVIRONMENT ENV MYSQL_ALLOW_EMPTY_PASSWORD no ENV MYSQL_ROOT_PASSWORD=123 #CONFIGURATION COPY setup.sh /mysql/setup.sh COPY schema.sql /mysql/schema.sql COPY privileges.sql /mysql/privileges.sql #COMMAND CMD ["sh", "/mysql/setup.sh"]
setup.sh:
#!/bin/bash set -e #查看mysql服务的状态,方便调试,这条语句能够删除 echo `service mysql status` echo '1.启动mysql....' #启动mysql service mysql start sleep 3 echo `service mysql status` echo '2.开始导入数据....' #导入数据 mysql < /mysql/schema.sql echo '3.导入数据完毕....' sleep 3 echo `service mysql status` #从新设置mysql密码 echo '4.开始修改密码....' mysql < /mysql/privileges.sql echo '5.修改密码完毕....' #sleep 3 echo `service mysql status` echo `mysql容器启动完毕,且数据导入成功` tail -f /dev/null ~
privileges.sql:
use mysql; select host, user from user; create user jayer identified by '123456'; grant all on docker_mysql.* to jayer@'%' identified by '123456' with grant option; flush privileges;
schema.sql:
create database `docker_mysql` default character set utf8 collate utf8_general_ci; use docker_mysql; DROP TABLE IF EXISTS Stu; CREATE TABLE Stu ( `Num` varchar(20) NOT NULL, `Name` varchar(20) DEFAULT NULL, `Class` varchar(10) DEFAULT NULL, PRIMARY KEY (`Num`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; INSERT INTO Stu (`Num`, `Name`, `Class`) VALUES ('123','jayer','1');