七、微服务学习笔记-docker compose
一、安装
官方文档:https://docs.docker.com/compose/install/
注:要使用docker-compose命令,需要先安装docker,安装docker在上文有提到。
#安装命令 sudo curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
#上面官方命令太慢,用下面这个
curl -L https://get.daocloud.io/docker/compose/releases/download/1.24.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
二、修改IP和主机名
#固定IP vi /etc/netplan/50-cloud-init.yaml #设置网络内容
network:
version: 2
renderer: networkd
ethernets:
ens33: #配置的网卡名称
dhcp4: no #dhcp4关闭
dhcp6: no #dhcp6关闭
addresses: [192.168.1.5/24] #设置本机IP及掩码
gateway4: 192.168.1.254 #设置网关
nameservers:
addresses: [114.114.114.114, 8.8.8.8] #设置DNS
参数介绍:ens33是网卡,可以通过ip a查看
#配置生效
netplan apply
#修改主机名,需要改cloud.cfg防止重启后主机名还原
vi /etc/cloud/cloud.cfg
#该配置默认为false
preserve_hostname:true
#修改主机名
hostnamectl set-hostname deployment
#配置host
cat >> /etc/hosts << EOF
192.168.141.130 deployment
EOF
#修改dns
vi /etc/systemd/resolved.conf
DNS=114.114.114.114
IP:本机的IP地址192.168.141.130/24(二进制)
子网掩码:限制单个局域网内有的计算机数量(如255.255.254.0 254*2=508),如果过大,寻址过慢
网关:一般为交换机地址,局域网内的计算机需要访问外网,需要通过网关连接到交换机,由交换机连接路由进行通讯
三、docker-compose配置
#进入local目录 cd /usr/local/ #创建docker目录,并进入docker目录 mkdir docker cd docker #创建tomcat目录,并进入tomcat目录 mkdir tomcat cd tomcat #创建docker-compose.yml vi docker-compose.yml
#启动命令
docker-compose up -d
#停止命令
docker-compose down
#查看运行日志(需要在当前目录)
docker-compose logs -f
docker-compose.yml配置tomcat文件内容:
version: '3.1'
services:
tomcat:
restart: always
image: tomcat
container_name: tomcat
ports:
- 8080:8080
volumes:
- ./webapps:/usr/local/tomcat/webapps
environment:
TZ:Asia/Shanghai
docker-compose.yml配置mysql文件内容:
version: '3.1' services: db: restart: always image: mysql:5.7.20 environment: MYSQL_ROOT_PASSWORD: 123456 command: --default-authentication-plugin=mysql_native_password --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci --explicit_defaults_for_timestamp=true --lower_case_table_names=1 ports: - '3306:3306' volumes: - ./data:/var/lib/mysql #数据 - ./conf:/etc/mysql/conf.d #配置文件 - ./logs:/logs #日志 # MySQL 的Web客户端 adminer: image: adminer restart: always ports: - '8081:8080'
原样粘贴:
#vi进入文件后 :set paste
或者通过快捷命令
shfit+insert
四、yaml配置文件语言
1、大小写敏感
2、使用缩进表示层级关系
3、不能使用tab,只能使用空格
4、缩进的空格数目不重要,只要相同层级的元素左侧对齐即可
字符串、数组、纯量、对象
关键字:DHCP(动态分配IP,租期,自动续约)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY