1、安装docker-compose实验
安装完成
2、yaml文件
(1)定义
一种直观的、以竖列形式展示序列化数据格式的标记语言,可读性高。类似于json格式,但语法简单
yaml通过缩进表示数据结构,连续的项目用-减号表示
(2)使用注意事项
①大小写敏感
②通过缩进表示层级关系
③只能用空格缩进,不能用tab键
④使用#注释
⑤符号字符后面均有一个空格
举例:test: 2(2前面有一个空格)
⑥单引号引起来的字符会被当作普通字符串处理,双引号里面是特殊字符表示本意
举例:“#”表示#本身这个符号
(3)yaml格式
①声明标量(不能用tab键表示空格)
特点:单个的、不可再分的值
类型:字符串、整数、布尔类型
name: guoqi(中间有空格)
age: 20
tall: yes
handson: yes
wan: no
②list列表:表示有序的元素集合(不能用tab键表示空格)
class:
- guoqi
- zirui
- defu
③键值对映射(不能用tab键表示空格)
Student:
Name: guoqi
Age: 20
Student1:
Name: zirui
Age: 18
④注释
#test
⑤引用:用&定义锚点,用*引用(不能用tab键表示空格)
Student: &id1
Name: guoqi
Age: 20
student1: *id1 #调用Student里的name和age
(4)字符串引号
Name: ‘guoqi’
Name: “guoqi”
Name: ‘$’ #表示$字符串
Name: “$” #表示$含义
3、作用
单机容器编排(不能跨网段、不能跨主机)
既可以基于dockerfile,也可以基于镜像,一键式拉取镜像和容器
4、docker适用场景
适用于单节点本地访问,docker没有统一的对外提供服务的端口和配置,一般是内部访问,无需使用https,若要以集群和分布式的方式提供统一访问的端口,可以使用K8s+ingress
5、docker-compose的常用命令
只能在有docker-compose的目录下运行docker-compose命令 | |
build | 构建服务 |
ps | 列出由docker-compose编排出来的容器(常用) |
up | 创建和启动容器(常用) |
top | 显示容器的进程 |
logs | 查看容器的输出日志 |
down | 删除容器、网络、数据卷 |
exec | 在容器中执行命令(一般不用) |
stop/start/restart | 停止/启动/重启 |
scale | 指定启动的容器数量(副本)(在k8s中常用) |
6、编排yml文件
docker-compose搭建nginx容器实验
1、安装docker-compose
2、安装tree
3、创建nginx的Dockerfile文件
5、创建docker-compose的yml文件(必须和nginx和www平级创建yml文件)
5、构建容器
docker-compose -f docker-compose.yml up -d
docker-compose | 命令的开头,使用docker-compose进行容器编排 |
-f | 使用特定的compose的模板文件,一般不重命名,都用docker-compose.yml |
-p | project-name,指定项目名称,若不加,会使用目录名称 |
-d | 后台运行 |
6、访问测试
7、测试docker-compose的命令(一定要在docker.compose.yml的目录下使用)
docker-compose搭建nmp容器+wordpress实验
1、安装docker-compose
2、配置nginx、mysql、php的配置文件和Dockerfile文件
(1)nginx
cd /opt/lnmp/nginx
vim Dockerfile
vim nginx.conf
(2)mysql
cd mysql/
vim Dockerfile
vim my.cnf
(3)php
cd php/
vim Dockerfile
3、创建docker-compose.yml文件(必须和要创建的容器目录平级)
yum -y install tree
4、构建容器
docker-compose -f docker-compose.yml up -d
5、查看容器是否构建成功
mysql -u root -p
create database wordpress;
grant all privileges on wordpress.* to 'wordpress'@'%' identified by '123456';
grant all privileges on *.* to 'root'@'%' identified by '123456';
flush privileges;
6、浏览器访问http://20.0.0.16/wordpress/index.jsp