docker安装
# 1. 卸载之前的docker
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
# 2.需要的安装包
yum install -y yum-utils
# 3.设置镜像的仓库( 默认是从国外的,不推荐, 推荐使用国内的)
yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 更新yum软件包索引
yum makecache
# 4.安装docker相关的 docker-ce 社区版 而ee是企业版
yum install docker-ce docker-ce-cli containerd.io
# 5、启动docker
docker systemctl start docker
# 6. 使用docker version查看是否按照成功
docker version
# 7.创建目录
sudo mkdir -p /etc/docker
# 8.配置阿里云镜像加速器
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://2lxyghvy.mirror.aliyuncs.com"]
}
EOF
# 9.重载docker
sudo systemctl daemon-reload
# 10.重启docker
sudo systemctl restart docker
docker配置mysql
# 1. 拉取镜像,指定版本时注意加上冒号
docker pull mysql:5.7
# 2.运行容器
sudo docker run -p 3306:3306 --name mysql \
-v /data/mysql/log:/var/log/mysql \
-v /data/mysql/data:/var/lib/mysql \
-v /data/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7
# -p 3306:3306 将docker容器的3306端口映射到宿主机的3306端口
# -v 宿主机文件目录:容器内目录 将容器内文件挂载到宿主机上
# -e MYSQL_ROOT_PASSWORD=root 设置密码为root
# -d 后台启动
# --name 给启动容器起名字
docker配置redis
# 1、下载镜像
docker pull redis
# 2、创建配置文件
mkdir -p /data/redis/conf
touch /data/redis/conf/redis.conf
# 3、启动容器
# 云服务器一定要修改端口或配置密码,否则会被拉去挖矿
docker run -p 6124:6379 --name redis \
-v /data/redis/data:/data \
-v /data/redis/conf/redis.conf:/etc/redis/redis.conf \
-d redis redis-server /etc/redis/redis.conf
# 4、直接进入redis客户端
docker exec -it redis redis-cli
docker 使用Nginx部署vue项目
# 1.拉取镜像
docker pull nginx
# 2.创建Nginx容器
docker run -d --name nginx -p 80:80 nginx
# -d 后台运行 --name 运行的镜像名 -p 指定端口映射 nginx 指定镜像
# 3.创建挂载目录
mkdir -p /data/nginx/{conf,log,html}
# 4.把Nginx容器中的需要操作的文件进行拷贝
docker cp nginx:/etc/nginx/nginx.conf /data/nginx/conf/nginx.conf
docker cp nginx:/etc/nginx/conf.d /data/nginx/conf/conf.d
docker cp nginx:/usr/share/nginx/html /data/nginx/
#分别拷贝nginx.conf、conf.d、html目录复制到主机
# 5.强制删除刚创建的Nginx容器
docker rm -f nginx
# 6.重新创建容器
docker run -d --name nginx -p 80:80 \
-v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /data/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /data/nginx/log:/var/log/nginx \
-v /data/nginx/html:/usr/share/nginx/html \
--privileged=true nginx
# 7.在浏览器地址栏输入ip:80 查看是否成功
Nginx请求代理、解决刷新报404问题
修改docker与宿主机配置映射文件 /data/nginx/conf/nginx.conf
vue build 打完包把dist文件里的文件全部上传服务器的 /data/nginx/html 文件夹中
server {
listen 9876;
listen [::]:9876;
server_name localhost;
location / {
root /usr/share/nginx/html;
# 1.解决404问题 try_files $uri $uri/ @router
try_files $uri $uri/ @router;
index index.html index.htm;
}
# 2.解决404问题
location @router {
rewrite ^.*$ /index.html last;
}
# 1.请求代理
location ^~ /api/ {
rewrite ^/api/(.*)$ /$1 break;
#2.代理地ip
proxy_pass http://xxx.xxx.xxx.xxx:9090;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
docker部署springboot项目
# 1. 把打好的jar包放到一个新文件夹中
# 2. 在该目录下创建Dockerfile 文件
# 3. 使用文本编辑器打开Dockerfile写入如下内容
FROM java:8
MAINTAINER gnx
ADD app.jar test.jar
EXPOSE 9090
ENTRYPOINT ["java","-jar","test.jar"]
# from java:8 拉取镜像jdk为1.8
# maintainer 作者是gnx
# app.jar 当前目录jar包
# demo.jar 当前目录jar包重新命名,在容器中运行
# expose 该容器暴露的端口是,jar在容器中运行的端口
# entrypoint 容器启动之后执行的命令,相当于在linux中运行java -jar test.jar
# 4. cd到Dockerfile同级目录下构建自定义镜像
docker build -t springbootAndVue .
#注意最后的【.】不可以去掉 其表示 与Dockerfile同级目录下
#springbootAndVue 自定义镜像名称
# 5. 运行自定义镜像
docker run -d \
--restart=always \
--name springbootAndVue \
-p 8080:8080 springbootAndVue
#--restart=always服务器开机docker运行此镜像自动开启
# 6. 查看镜像是否运行
docker ps
# 7. 查看启动日志
docker logs --tail 300 -f springbootAndVue