docker-compose
1.如何安装docker-compose
首先安装docker-compose
mv docker-compose-linux-x86_64 docker-compose
mv docker-compose /usr/local/bin
chmod 777 /usr/local/bin/docker-compose
docker-compose -v
2.docker-compose
docker-compose 单机容器编排
Dockerfile:先配置好文件,然后build,镜像------->容器
docker-compose 既可以基于dockerfile,也可以基于镜像,一键式,拉起镜像和容器。
docker-compose 核心就是yml文件,可以定义容器的一切,通过yml配置,直接运行容器
docker:单节点。docker没有统一对外提供服务的端口和配置。docker一般都是内部访问,无需使用https。如果要对外以集群和分布式的方式提供统一访问的端口,k8s+ingress
3.yaml文件
yaml文件:是一种标记语言,以竖列的形式展示序列化的数据格式,可读性高
类似于json格式,语法简单。
YAML通过缩进来表示数据结构,连续的项目用 -来表示
yaml文件使用的注意事项:
1.大小写敏感
2.通过缩进表示层级关系
3.只能用空格缩进不能用tab缩进
4.可以使用#键注释
5.符号字符后面都有一个空格
6.单引号引起了的字符,会被当做普通字符串处理, 双引号里面是特殊字符,就是本意
4.YAML文件的基础数据结构
声明变量(标量,原子性,单个的,不可再分的值,字符串 整数 布尔类型):
name: guoqi
age: 20
tail: yes
handsan: yes
wan: true
list(列表):表示有序的元素集合
class:
- guoqi
- zirui
- defu
键值对映射:
student:
Namw: guoqi
Age: 20
student1:
Namw: zirui
Age: 18
注释:
# test
引用:
student: &id1
name:guoqi
Age: 20
student1: *id1
用&来定义锚点,用*来进行引用
字符串引号:
name: 'guoqi'
name: "guoqi"
5.docker-compose的常用命令
build:构建服务
ps:列出由docker-compose编排出来的容器
up:创建和启动容器
top:显示容器的进程
logs:查看容器的输出日志
down:删除容器,网络以及数据卷
exec:在容器当中执行命令
stop/start/restart:停止,启动,重启容器
scale:指定容器服务的启动数量(副本)
6.docker-compose安装nginx
首先安装docker-compose
mv docker-compose-linux-x86_64 docker-compose
mv docker-compose /usr/local/bin
chmod 777 /usr/local/bin/docker-compose
docker-compose -v
yum -y install tree
mkdir compose-nginx
cd compose-nginx
mkdir nginx
cd nginx
把nginx投进去
vim Dockerfile
FROM centos:7
RUN yum -y install pcre-devel zlib-devel gcc gcc-c++ make && useradd -M -s /sbin/nologin nginx
ADD nginx-1.22.0.tar.gz /usr/local/src/
WORKDIR /usr/local/src/nginx-1.22.0
RUN ./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module && make -j 4 && make install
ENV PATH /usr/local/nginx/sbin:$PATH
EXPOSE 80
ENTRYPOINT ["/usr/local/nginx/sbin/nginx","-g","daemon off;"]
wq!
cd /opt/compose-nginx
mkdir www
cd www/
echo "this is nginx1" > index.html
cd /opt/compose-nginx
vim docker-compose.yml
version: '3'
#指定docker-compose的文件版本
services:
#定义需要运行的服务
nginx:
container_name: web1
#指定创建容器的名字。
hostname: nginx
#指定容器的主机名nginx
build:
#指定构建nginx容器的上下文以及dockerfile
context: /opt/compose-nginx/nginx
#指定docker的位置
dockerfile: Dockerfile
#指定dockerfile的位置,如果用镜像缓存image:
ports:
#指定宿主机和容器的端口映射关系
- 1213:80
networks:
#声明给容器指定的IP地址
mynet:
#自定义网络
ipv4_address: 172.18.0.10
volumes:
- /opt/compose-nginx/www:/usr/local/nginx/html
networks:
#创建自定义网桥接口配置
mynet:
driver: bridge
#声明网段的类型
ipam:
#声明网段,ip地址的管理和配置
config:
#子网配置,指定ip地址的范围:
- subnet: 172.18.0.0/16
######
version: '3'
services:
nginx:
container_name: web1
hostname: nginx
build:
context: /opt/compose-nginx/nginx
dockerfile: Dockerfile
ports:
- 1213:80
networks:
mynet:
ipv4_address: 172.18.0.10
volumes:
- /opt/compose-nginx/www:/usr/local/nginx/html
networks:
mynet:
driver: bridge
ipam:
config:
- subnet: 172.18.0.0/16
wq!
cd compose-nginx
docker-compose -f docker-compose.yml up -d
#docker-compose使用docker-compose进行容器编排
-f 使用特定的compose的模版文件,一般都要docker-compose.yml
-p: project-name 指定项目名称,如果不加,会使用目录名称
-d: 后台运行
docker ps
7.docker-compose安装lnmp
mkdir /opt/lnmp
cd /opt/lnmp
mkdir nginx mysql php
cd nginx
把nginx和nginx.conf,wordpress
vim Dockerfile
cd mysql/
把mysql和my.cnf进去
vim Dockerfile
cd php
把东西全部拖进去
vim Dockerfile
cd lnmp
vim docker-compose.yml
version: '3'
services:
nginx:
hostname: nginx
build:
context: /opt/lnmp/nginx
dockerfile: Dockerfile
ports:
- 1314:80
container_name: nginx_server
networks:
lnmp:
ipv4_address: 172.111.0.10
volumes:
- "nginx-data:/usr/local/nginx/html"
mysql:
hostname: mysql
build:
context: /opt/lnmp/mysql/
dockerfile: Dockerfile
ports:
- 3306:3306
container_name: mysql_server
networks:
lnmp:
ipv4_address: 172.111.0.20
privileged: true
#虽然我们登录容器,显示的是root用户,伪管理员,一旦privileged: true,容器内的root用户和宿主机的root用户,拥有一样的权限,在生产中能不给就不给。
volumes:
- "mysql-data:/usr/local/mysql"
php:
hostname: php
build:
context: /opt/lnmp/php/
dockerfile: Dockerfile
ports:
- 9000:9000
container_name: php_server
networks:
lnmp:
ipv4_address: 172.111.0.30
volumes:
- "nginx-data:/usr/local/nginx/html"
- "mysql-data:/usr/local/mysql/"
networks:
lnmp:
driver: bridge
ipam:
config:
- subnet: 172.111.0.0/16
volumes:
nginx-data:
mysql-data:
cd /opt/lnmp
docker-compose -f docker-compose.yml up -d
docker images
docker ps
docker exec -it mysql_server bash
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;
exit
访问192.168.66.14:1314/wordpress/index.php
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!