1. docker安装
1.1. Debian\UOS\Ubuntu
#更新系统
sudo apt update
#安装docker-ce
sudo apt install docker-ce
1.2. CentOS
#更新系统
sudo yum update
#安装docker-ce
sudo yum install docker-ce
[!tip]如果
docker-ce
安装提示不存在包,可以安装docker-io
一般安装好系统建议更换镜像源为国内地址,后面安装软件下载速度会快很多。如果docker
安装软件下载很慢,可以更换国内镜像库,参考博文
docker 国内镜像配置
#编辑docker配置文件
sudo vi /etc/docker/daemon.json
#增加下面json 配置
json格式配置
{
"registry-mirrors": ["https://ha0sig3m.mirror.aliyuncs.com"]
}
2. 容器配置
创建统一的docker挂载目录,具体路径根据实际情况可以修改
#mysql文件,容器会自动生成
sudo mkdir /data/mysql
#复制打包好的jar包与项目文件夹
sudo mkdir /data/mcms
#代理配置
sudo mkdir /data/nginx
[!tip]挂载目录常存放配置文件或常更新的文件,避免容器损坏导致数据文件或配置丢失
2.1. Docker网络
#创建docker网络,方便固定docker容器ip
sudo docker network create --opt com.docker.network.driver.mtu=1450 \
--opt com.docker.network.bridge.name=docker1 --subnet=172.18.0.1/16 ms
2.2. 安装portainer
sudo docker run --name portainer --network=ms --ip 172.18.0.98 -p 9000:9000 -d --restart=always -v /var/run/docker.sock:/var/run/docker.sock docker.io/portainer/portainer
[!tip]方便管理docker容器,不需要指令管理docker
2.3. 安装MySQL
sudo docker run --network=ms --ip 172.18.0.3 --name mysql \
-e TZ="Asia/Shanghai" \
-p 3306:3306 \
--privileged=true --restart=always -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7 \
--sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" \
--lower-case-table-names=1 \
--symbolic-links=1 \
--skip-name-resolve=0 \
--max-connections=1000
[!tip] 建议使用目录挂载
-v /data/mysql/:/var/lib/mysql
避免容器删除导致数据也删除,
挂载具体操作步骤:
1、通过上面的脚本创建创建一个初始化容器
2、通过sudo docker cp mysql:/var/lib/mysql /data/
将mysql初始化的数据库文件复制到宿主机
3、通过portainer
管理工具删除刚创建好的mysql
容器,
4、再执行上面的脚本,注意:需要增加-v /data/mysql/:/var/lib/mysql
目录挂载
开启远程root
登录步骤:
1、通过portainer
进入mysql
容器指令维护模式
2、登录mysql -uroot -p
,密码初始为root
,
3、执行alter user 'root'@'%' identified with mysql_native_password by 'root';
4、刷新权限flush privileges;
5、本地通过数据库连接工具连接上mysql
,
2.4. 安装MCms
需要先将 mcms
打包好的文件上传到 /data/mcms
目录下,具体目录结构参考下图:
x86 脚本
docker run --name mcms -v /data/mcms:/home \
--network=ms --ip 172.18.0.50 -p 8080:8080 \
--privileged=true mingsoft/java \
java -jar mcms.jar
arm64 脚本
docker run --name mcms -d -v /data/mcms:/home \
--network=ms --ip 172.18.0.50 -p 8080:8080 \
-w /home --restart=always --privileged=true \
arm64v8/openjdk \
java -jar mcms.jar
[!tip] 记得修改
config
目录下的数据库连接配置,数据库的ip
地址为mysql
容器的ip地址,如:上面mysql脚本的ip为172.18.0.3
2.5. 安装Nginx
docker run --name nginx -d \
--network=ms --ip 172.18.0.10 -p 80:80 \
--restart=always --privileged=true \
docker.io/nginx
[!tip] 建议挂载
-v /data/nginx:/etc/nginx
避免容器删除导致配置丢失,
挂载具体操作步骤:
1、通过上面的脚本创建创建一个初始化容器
2、通过sudo docker cp nginx:/etc/nginx /data/
3、通过portainer
管理工具删除刚创建好的nginx
容器,
4、再执行上面的脚本,注意:需要增加-v /data/nginx:/etc/nginx
目录挂载
2.5.1. nginx.conf配置
参考 Nnginx代理配置 章节