服务器部署-docker-容器版本
QQ:1085086743
正文
开发准备
SpringBoot的yml多环境配置3种方法
https://blog.csdn.net/wenxuankeji/article/details/138323567
方式一:多个yml文件
- 步骤一、创建多个配置文件
application.yml #主配置文件
application-dev.yml #开发环境的配置
application-prod.yml #生产环境的配置
application-test.yml #测试环境的配置 - 步骤二、applicaiton.yml中指定配置
在application.yml中选择需要使用的配置文件(当选择的文件和application.yml文件存在相同的配置时,application.yml中的配置会被覆盖掉)
spring:
profiles:
active: dev #需要使用的配置文件的后缀
方式二: 单个yml文件
-
激活dev环境配置
spring:
profiles.active: dev -
开发环境配置
spring:
profiles: dev
datasource:
url: jdbc:mysql://127.0.0.1:3306/dev?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC
username: root
password: 123456
driver-class-name: com.mysql.jdbc.Driver
server:
port: 8080 -
测试环境配置
spring:
profiles: test
datasource:
url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC
username: root
password: test
driver-class-name: com.mysql.jdbc.Driver
server:
port: 88 -
生产环境配置
spring:
profiles: prod
datasource:
url: jdbc:mysql://localhost:3306/prod?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC
username: root
password: prod
driver-class-name: com.mysql.jdbc.Driver
server:
port: 99
配置默认的profile为dev,其他环境可以通过指定启动参数来使用不同的profile,比如:
测试环境:java -jar 项目.jar --spring.profiles.active=test
生产环境:java -jar 项目.jar --spring.profiles.active=prod
后端部署
准备docker环境,拉取所需镜像
正式安装docker环境:
1)较旧的 Docker 版本称为 docker 或 docker-engine 。如果已安装这些程序,请卸载它们以及相关的依赖项。
[root@localhost ~]# sudo yum remove docker \
docker-client
docker-client-latest
docker-common
docker-latest
docker-latest-logrotate
docker-logrotate
docker-engine
2)安装docekr所需要的环境
[root@localhost ~]# sudo yum install -y yum-utils
device-mapper-persistent-data
lvm2
3)下载阿里云docker社区版yum源(docker-ce.repo这个是一个yum源文件)
[root@localhost ~]# sudo yum-config-manager
--add-repo
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
备注:
i)下载yum源文件所在的路径:/etc/yum.repos.d,进入查看有没有此文件
ii)查看docker可下载的版本
yum list docker-ce --showduplicates
4)安装docker(不加版本号,默认安装最新的版本)
sudo yum -y install docker-ce docker-ce-cli containerd.io
为了防止启动不了docker,需要再次更新一个环境xfsprogs(日志文件系统)
yum -y update xfsprogs
5)启动docker服务
systemctl start docker.service
6)查看版本
[root@localhost yum.repos.d]# docker version
7)设置docekr开机自动启动
[root@localhost test]# systemctl enable docker
docker镜像
https://www.cnblogs.com/flaming/p/11438244.html
什么是docker镜像?
类似于CentOS-7-x86_64-Minimal-1804.iso镜像文件
镜像到底是个什么东西呢,很多人在学习docker的时候都是一头雾水的,可是是歪果仁对镜像情有独钟吧,好
多东西都有镜像的概念。比如我们安装系统的.iso文件,其实就是镜像,这里你就可以把镜像认为是一种模板。我们可以
使用docker根据这个模板创建容器来运行,其实更可以理解为镜像是好比github上的仓库一样,我们可以克隆下来源代
码然后运行,运行起来的代码可以是一个网站、一个应用程序啥的,这就可以叫做容器。说白了,镜像就是一堆静态的模
板,运行起来的镜像就是容器。镜像一般需要我们拉取下来,是只读的
总结:镜像(静态的模板)-》运行起来-》就是容器(一个镜像可以创建很多个容器,容器之间互相隔离)
仓库:
https://hub.docker.com/
存放镜像文件的地方就是仓库
存放镜像的地方就是仓库,就好比存放代码的地方是github一样,我们就把github称为代码的仓库,github
算是最大的仓库。那么存放docker镜像的地方我们叫做dockerhub,是docker的中央仓库。其实已经有dockerhub这
个网站了(https://hub.docker.com/),这就是 存放docker镜像的官方仓库,好多官方的也保存在这里,保证了
镜像的安全性和可靠性,我们可以从上边拉取一下镜像来运行我们的软件。当然我们也可以制作好我们自己镜像推送上
去,不过这些肯定是要官方审核的,防止有些人写入一些恶意代码。不过我们可以推到我们自己的dockerhub上去,供我
们自己使用,这个就好我们的github账号一样了,属于私有镜像了。
镜像加速
https://www.runoob.com/docker/docker-mirror-acceleration.html
国内从 DockerHub 拉取镜像有时会遇到困难,此时可以配置镜像加速器。Docker 官方和国内很多云服务商都提
供了国内加速器服务
备注的是:加速器地址每个人都不一样,不要直接复制我的,将下面命令全选中执行即可
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["url:配自己的,阿里只支持自己服务器使用了"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
配置运行环境、拉取所需镜像
docker pull mysql:8.0.19
docker pull redis:6.0.8
docker pull nginx:1.18.0
docker images ps -a 查看所有镜像
生成mysql容器-配置mysql数据库
验证:navicat连接mysql数据库成功
导入数据
i)将sql文件上传到服务器中
ii)将此sql文件复制进容器中的/root目录下,参考《容器化技术中的文件的复制章节》
iii)进入数据库导入即可
root@9aa98fd6e746:/# mysql -uroot -p
mysql> create database ryvue charset utf8;
mysql> show databases;
iii)将两个sql文件导入到ryvue库中
root@9aa98fd6e746:/# mysql -uroot -p'123456'
mysql> use yourdb;
mysql> source /root/my.sql
生成redis容器
生成nginx容器
创建自定义镜像
docker自定义网络配置
Docker容器连接:https://www.runoob.com/docker/docker-container-connection.html
端口映射查看
docker port CONTAINER [PRIVATE_PORT[/PROTO]]
自定义网络:
docker container ls
查看docker网络
docker network ls
docker network inspect a4645c97b43a(网络ID)
1)创建一个基于bridge网络模式的自定义网络
docker pull centos:7 //拉取镜像
docker network create My_networ
2)查看网络模式
docker network ls
3)创建容器时添加自定义网络
docker run -itd --name=containerName --net connect My_network imageId /bin/bash
4)已有容器的自定义网络添加
docker connect My_network containerId/name
容器没有ping命令
- 进入容器
- sudo docker run -i -t ubuntu /bin/bash
- 运行命令
- apt-get update
- apt install net-tools # ifconfig
- apt install iputils-ping # ping
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本