共计 3522 个字符,预计需要花费 9 分钟才能阅读完成。
yaml 规定
docker-compose.yaml 是 Compose 的外围,咱们肯定要学会 yaml 编写的规定
当然,咱们还是查看官网文档,compose 局部
compose file
yaml 文件的构造分为三层:
- version
版本号
- services
服务名
- 其余配置,如网络,挂载等公共的货色
version:'' # 版本号
services:
服务器 1 web:
以后服务的配置,这个局部就能够和 DockerFile 写的差不多了
build
depends_on
...
服务 2 redis:
...
服务 n mongodb:
network:
volume:
...
其余配置
下面说的到版本号在哪里找呢?
进入 dockerhub 网页,https://docs.docker.com/compo…
官网上的这些都是能够应用的版本,如官网给出的例子:
version: "3.9"
services:
redis:
image: redis:alpine
ports:
- "6379"
networks:
- frontend
deploy:
replicas: 2
update_config:
parallelism: 2
delay: 10s
restart_policy:
condition: on-failure
...
networks:
frontend:
backend:
volumes:
db-data:
services 和 其余命令都能够写什么呢?
services 上面能够写的命令十分的多,文档上也讲的十分的具体
-
Service configuration reference
-
build # 构建容器的门路
- context # 指定 dockerfile 的门路 或者 git 存储库的 url
- dockerfile # 指定 dockerfile 文件
- args # 增加构建的参数
- cache_from # 缓存解析的镜像列表
- labels # 增加元数据,咱们也能够应用数组或者是字典
- network # 定义网络
- shm_size # 设置构建镜像的分区大小
/dev/shm
,例如 shm_size: ‘2gb’ - target # 指定构建的作用,例如 prod,test,dev
- cap_add, cap_drop # 增加或删除容器的性能
- cgroup_parent # 指定一个可选的父容器组
- command # 笼罩默认命令
-
configs # 授予服务配置拜访权限
- Short syntax
- Long syntax
- container_name # 指定容器名
-
credential_spec
- Example gMSA configuration
- depends_on # 指定依赖的服务
-
deploy # 指定与服务的部署和运行相干的配置
- endpoint_mode
- labels
- mode
- placement
- max_replicas_per_node
- replicas
- resources
- restart_policy
- rollback_config
- update_config
- Not supported for docker stack deploy
- devices # 设施映射列表
- dns # dns 配置,配置 ip
- dns_search # dns 配置,配置域名
- entrypoint # 指定命令,可追加
- env_file # 从文件中增加环境变量
- environment # 增加环境变量
- expose # 裸露端口
- external_links # 与内部容器的链接
- extra_hosts # 额定的主机映射
- healthcheck # 心跳检测
- image # 指定镜像
- init
- isolation
- labels
- links
- logging
- network_mode
-
networks
- aliases
- ipv4_address, ipv6_address
- pid
-
ports
- Short syntax
- Long syntax
- profiles
- restart
-
secrets
- Short syntax
- Long syntax
- security_opt
- stop_grace_period
- stop_signal
- sysctls
- tmpfs
- ulimits
- userns_mode
-
volumes
- Short syntax
- Long syntax
- Volumes for services, swarms, and stack files
- domainname, hostname, ipc, mac_address, privileged, read_only, shm_size, stdin_open, tty, user, working_dir
-
- Specifying durations
- Specifying byte values
-
Volume configuration reference
- driver
- driver_opts
- external
- labels
- name
-
Network configuration reference
-
driver
- bridge
- overlay
- host or none
- driver_opts
- attachable
- enable_ipv6
- ipam
- internal
- labels
- external
- name
-
如上命令还是十分的多,咱们一下子必定也是记不住的,须要咱们缓缓去相熟,用的多了,写的多了,看得多了,常识缓缓的也积重难返了
咱们学习的办法有:
- 多看官网文档,看官网的例子
- 看开源我的项目,看看他人的 docker-compose.yaml 是如何编写的
实战 - 搭建 wp 博客
咱们来应用 docker-compose.yaml 的形式来搭建咱们的集体博客,感受一下一键部署的魅力
创立工作目录
mkdir my_wordpress
cd my_wordpress
编写咱们的 docker-compose.yaml 文件
version: "3.9"
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
volumes:
- wordpress_data:/var/www/html
ports:
- "8888:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
volumes:
db_data: {}
wordpress_data: {}
解释一下 docker-compose.yaml 文件的含意:
- 装置了 2 个服务,一个是 db mysql,一个是 wordpress 服务
-
数据库服务
- mysql 应用的镜像是 mysql:5.7
- 挂载是挂到
/var/lib/mysql
,默认应用的是具名挂载,所有会挂载到宿主机的这个门路/var/lib/docker/volumes/my_wordpress_db_data/_data
- 设置 mysql 相干的环境变量
-
wordpress 服务
- 依赖数据库服务
- 用的镜像是 wordpress:latest
- 挂载卷是
/var/www/html
,会挂载到咱们宿主记得这个目录/var/lib/docker/volumes/my_wordpress_wordpress_data/_data
- 设置端口,将宿主记得 8888 端口映射到容器的 80 端口
- 设置 wordpress 相干的环境变量
docker-compose up 一键部署服务并启动
在工作目录执行如下指令一键部署服务
#docker-compose up
咱们也能够在让服务在后盾启动
#docker-compose up -d
启动之后咱们能够看到程序先去创立网络,创立对应的挂载卷
开始创立并启动对应的容器
- my_wordpress_db_1
- my_wordpress_wordpress_1
查看一下博客搭建的成果
咱们能够拜访博客地址:服务器的 IP:8888
nice,应用 docker-compose.yaml 搭建集体的 wordpress 博客胜利!!!
wordpress 的界面是这个样子的,外面的性能很多,间接就在页面上定制化咱们本人的页面,十分不便,xdm 能够尝试一波,不亏
参考资料
- wordpress
- docker docs
欢送点赞,关注,珍藏
敌人们,你的反对和激励,是我保持分享,提高质量的能源
好了,本次就到这里
技术是凋谢的,咱们的心态,更应是凋谢的。拥抱变动,背阴而生,致力向前行。
我是 小魔童哪吒,欢送点赞关注珍藏,下次见~