文章目录
一、服务器规划
服务器IP | 端口 | 服务 | 用途 |
---|---|---|---|
192.168.4.114 |
6443 | k8s-master | k8s管理端 |
192.168.4.114 192.168.4.115 192.168.4.118 |
8080 | admin | 商城后台服务 |
8401 | atuh | 认证中心 | |
8101 | monitor | 监控中心 | |
8085 | portalk | 商城前台服务 | |
8081 | search | 商城后台搜索 | |
8201 | gateway | 微服务网关 | |
192.168.4.119 |
80 | nginx | 前端发展 |
3306 | mysql | 数据库 | |
6379 | redis | 数据库 | |
27017 | nogodb | 数据库 | |
9200 | es | ELK | |
8000 | portainer | 容器可视化 | |
5672 | rabbitmq | 消息队列 | |
8848 | nacos | 注册中心 | |
192.168.4.120 |
2376 | mvn | 镜像构建https端口 |
443 | harbor | 镜像仓库 |
二、镜像打包及推送
1)下载源码
cd /opt/
wget -c https://github.com/macrozheng/mall-swarm/archive/refs/tags/v1.0.2.zip
yum install unzip -y
unzip mall-swarm-1.0.2.zip
2)部署docker
yum -y remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-ce-cli \
docker-engine
#查看还有没有存在的docker组件
#rpm -qa|grep docker
#有则通过命令 yum -y remove XXX 来删除,比如:
#yum remove docker-ce-cli
#获取docker-ce的yum源
yum -y install wget
wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#获取epel源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum -y install epel-release
#显示docker-ce所有可安装版本:
#yum list docker-ce --showduplicates | sort -r
#安装指定docker版本
sudo yum install docker-ce-18.06.3.ce-3.el7 -y
#启动docker并设置docker开机启动
systemctl enable docker
systemctl start docker
docker ps
#确认镜像目录是否改变
docker info |grep "Docker Root Dir"
#创建镜像加速
cat >>/etc/docker/daemon.json <<EOF
{
"registry-mirrors": ["https://almtd3fa.mirror.aliyuncs.com"]
}
EOF
#重启docker
service docker restart
3)docker-compose说明
1、部署docker-compose
#下载Docker Compose
curl -L https://get.daocloud.io/docker/compose/releases/download/1.24.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
#修改该文件的权限为可执行
chmod +x /usr/local/bin/docker-compose
#查看是否已经安装成功
docker-compose --version
- 使用Dockerfile定义应用程序环境,一般需要修改初始镜像行为时才需要使用;
- 使用docker-compose.yml定义需要部署的应用程序服务,以便执行脚本一次性部署;
- 使用docker-compose up命令将所有应用服务一次性部署起来。
2、docker-compose.yml常用命令
images
- 指定运行的镜像名称
# 运行的是mysql5.7的镜像
image: mysql:5.7
container_name
- 配置容器名称
# 容器名称为mysql
container_name: mysql
ports
- 指定宿主机和容器的端口映射(HOST:CONTAINER)
# 将宿主机的3306端口映射到容器的3306端口
ports:
- 3306:3306
volumes
- 将宿主机的文件或目录挂载到容器中(HOST:CONTAINER)
# 将外部文件挂载到myql容器中
volumes:
- /mydata/mysql/log:/var/log/mysql
- /mydata/mysql/data:/var/lib/mysql
- /mydata/mysql/conf:/etc/mysql
environment
- 配置环境变量
# 设置mysqlroot帐号密码的环境变量
environment:
- MYSQL_ROOT_PASSWORD=root
links
- 连接其他容器的服务(SERVICE:ALIAS)
# 可以以database为域名访问服务名称为db的容器
links:
- db:database
3、Docker Compose常用命令
- 构建、创建、启动相关容器:
# -d表示在后台运行
docker-compose up -d
##停止所有相关容器:
docker-compose stop
#列出所有容器信息:
docker-compose ps
4、编写docker-compose.yml文件
Docker Compose将所管理的容器分为三层,工程、服务及容器。docker-compose.yml中定义所有服务组成了一个工程,services节点下即为服务,服务之下为容器。容器与容器直之间可以以服务名称为域名进行访问,比如在mall-tiny-docker-compose服务中可以通过jdbc:mysql://db:3306这个地址来访问db这个mysql服务。
#实例说明
2. version: '3'
3. services:
4. # 指定服务名称
5. db:
6. # 指定服务使用的镜像
7. image: mysql:5.7
8. # 指定容器名称
9. container_name: mysql
10. # 指定服务运行的端口
11. ports:
12. - 3306:3306
13. # 指定容器中需要挂载的文件
14. volumes:
15. - /mydata/mysql/log:/var/