还可参考:其他笔记
1
docker run参数,docker-compose.yml配置
结构如下:
如在容器1时MYSQL,访问172.27.0.2的3306端口。
例子1:首先创建一个docker容器nginx。(80:80)
常用命令:
$ docker ps //查看运行中的容器
$ docker exec -it mynginx //(id或者前三个数字) bash 进入容器`在这里插入代码片`
$ exit //退出容器
$ docker rm -f //***删除id为***的容器
¥clear //清空命令
查看ip信息用host
fce76…为宿主机id,172.17.0.2为容器ip。
接着另一个容器:$ docker run -dit alpine(alpine为大小5M的linux系统)
$ docker run -dit alpine //(alpine为大小5m的linux系统)
$ docker exec -it //***(前三个主机号) sh 进入容器
$ apk add curl //安装curl
$ curl 172.17.0.2
可以获取到上一个容器的nginx(即直接查看Ip进入容器访问)
例子2:1新建,2映射,3进入映射容器,4安装curl,5curl myng(得到nginx的首页内容,myng等同于域名172.17.0.2)
–link A:B将一个容器A(他的域名)映射到另一个容器B ,即myng映射到alpine。
原理:修改hosts文件里,myng直接映射172.17.0.2,
例:创建nginx容器到php容器到mysql容器的多容器项目
创建的时候要先创建mysql,因为创建php之前必须要有link mysql,创建nginx需要link php。
首先:
$ mkdir conf //创建第一个目录存放修改后的nginx配置文件,因为要解析php,
$ mkdir html //存放html和php文件
$ cd html/
$ vim index.html //创建index.html 进入后写完wq退出(w保存,q退出)
$ vim test.php //创建test测试php是否成功! wq退出
$ vim mysql.php //访问mysql(参考mysql php语法)
$ cd ../conf/ //进入文件夹
$ vim nginx.conf //修改conf文件
location /{}: 将html文件映射到新建的html。
location ~ .php$ (~表示正则), php后缀的走9000端口,
最后:
$ cd //根目录
$ vim docker-compose.yml //修改dockercompose,docker——compose如下。
$ docker-compose up -d // -d后台启动
$ docker ps //查看
结果产生三个容器,root目录下的serves,1表示第一个compose,可以建多个
docker-compose.yml 如下:
原理:访问根目录index.html,读取nginx的’/'配置,…
访问mysql.php,会去找dbhost主机地址,进入mysql容器,得到数据返回mysql.php
version: "3"
services:
nginx:
image: nginx:alpine //配置镜像
ports: //端口 -p参数
-80:80
volumes: //目录 -v参数
- /root/html:/usr/share/nginx/html //创建的html映射到nginx/html,**nginx容器中的是非php文件访问用的html**
- /root/conf/nginx.conf:/etc/nginx/nginx.conf //配置文件 conf映射nginx.conf
php:
image: devilbox/php-fpm:5.2-work-0.89 //要到dockerhub下载,devilbox/php-fpm为镜像名称:5.2-work-0.89为版本
volumes:
- /root/html:/var/www/html //创建的html映射到www/html , **php文件会到php容器中访问的html**
mysql:
image: mysql:5.6 //版本
environment:
- MYSQL_ROOT_PASSWORD=123456 //设置环境变量:mysql容器启动必须配置的参数