#目录
#说明
练手
和实践
Docker之作,仅供参考#结构图
#目录说明
#准备所需依赖镜像 使用DaoCloud提供的加速器先把依赖镜像先下到本地镜像库中,具体使用方式请见DaoCloud官网:http://www.daocloud.io/
$ dao pull debian:jessie
$ dao pull php:5.5.30-fpm
$ dao pull busybox
$ dao pull mysql:5.7.9
另外还有一个michaelzx/debian:jessie
镜像需要build,主要用于构建起他镜像。
本项目中的/tengine是From该镜像,如果有需要的话,可以自行扩展。我就是放着备用而已。
$ docker build --rm -t michaelzx/debian:jessie zx_docker_path/debian/.
#构建和运行
这里用到了docker-compose
1、新建一个文件夹/my_path/data
,将volume_data中的文件放进去。
2、修改docker-compose.yml中的配置
data_box:
container_name: data_box
image: "busybox"
volumes:
- ~/workspace/Docker/docker_data:/data
stdin_open: true
把这里的~/workspace/Docker/docker_data
改成你的/my_path/data
mysql_box:
container_name: mysql_box
image: "mysql:5.7.9"
ports:
- "3306:3306"
environment:
- MYSQL_ROOT_PASSWORD=root
这里可以修改你的mysql的root密码
说明
:在mac osx下如果要挂在volume可能会出现权限问题,会无法正常启动mysql容器。
解决方法还没找到,有知道的朋友不妨告知一下。
2、build镜像
$ docker-compose build
3、初始化并在后台运行容器
$ docker-compose up -d
#遇到的坑
###【问题一】http://x.x.x.x/index.PHP
居然可以被下载
实践环境是在mac os上装了Docker ToolBox,部署完毕以后,发现http://x.x.x.x/index.php
可以被正常访问,但是http://x.x.x.x/index.PHP
居然可以被下载。理论上index.PHP这个文件应该是不存在的。按照配置,应该是被分配到phpfpm中运行。但为什么又被当成默认文件类型提供了下载?
【分析】进入tengine容器
找到网站目录运行一下命令
# cd /data/sites/default/
# cat index.php
<?php phpinfo();?>
# cat index.PHP
<?php phpinfo();?>
可见在此路径下,文件不区分大小写。难道基础镜像有问题?
那到镜像自带的/tmp目录下试试
# cd /tmp
# echo "test">index.php
# ls
# index.php
# cat index.php
# test
# cat index.PHP
# cat: index.PHP: No such file or directory
可见此目录下是区分大小写的。
所以主要是还和/data有关,而/data是挂载上去的volume。
这个volume指向的是max os的本地目录。于是我都mac下的命令行终端试了下,果然不区分大小写。网上找了下资料,其实mac os分区格式有2种:
1、Mac OS 扩展(区分大小写,日志式)
2、Mac OS 扩展(日志式)
我去磁盘工具里面看了下。我的分区格式是第二种。
于是造成了这个问题。
所以通过这点,也再次提醒了我,docker并非一个以往意义上的完全独立的虚拟环境
,
【解决方案】还没找到,不过正式的服务器环境应该不会有这种问题吧。
###【问题二】OSX下在mysql中挂载volume的话会导致无法启动
如果不挂载volume完全正常,一直解决不了
这个问题,非常纠结,有知道的朋友还请指点一下。
#Docker相关命令
##镜像和容器的清理
###删除所有运行中的容器
$ docker kill $(docker ps -q)
###删除所有停止的容器
$ docker rm $(docker ps -a -q)
###删除所有没有tag和挂起的镜像
docker rmi $(docker images -q -f dangling=true)
###删除所有镜像
docker rmi $(docker images -q)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。