Docker部署Nginx和Tomact
在写之前需要先了解一些docker的一些基础命令
#启动docker
systemctl start docker
#关闭docker
systemctl stop docker
#重启docker
systemctl restart docker
#查看docker运行状态
systemctl status docker
#查看docker镜像列表
docker images
#拉取镜像 不加tag(版本号) 即拉取docker仓库中 该镜像的最新版本latest 加:tag 则是拉取指定版本
docker pull 镜像名
docker pull 镜像名:tag
#运行镜像
docker run 镜像名
docker run 镜像名:Tag
#删除镜像
docker rmi -f 镜像名/镜像ID
#查看正在运行容器列表
docker ps
#查看所有容器 -----包含正在运行 和已停止的
docker ps -a
#运行一个容器
# -it 表示 与容器进行交互式启动 -d 表示可后台运行容器 (守护式运行) --name 给要运行的容器 起的名字 /bin/bash 交互路径
docker run -it -d --name 要取的别名 镜像名:Tag /bin/bash
#停止容器
docker stop 容器名/容器ID
#删除容器
docker rm -f 容器名/容器ID
#进入容器内部
docker exec -it 容器名/容器ID /bin/bash
#退出容器
exit
#重启容器
docker restart 容器ID/容器名
#启动容器
docker start 容器ID/容器名
接下来就可以开始着手部署了
Docker部署Nginx
-
拉取nginx镜像
docker pull nginx:latest #拉取完成查看: docker images
-
创建工作目录方便挂在文件
#进入usr目录 创建相应的工作目录 cd /usr mkdir docker cd docker mkdir docker-nginx cd docker-nginx mkdir logs mkdir nginx mkdir html #启动nginx容器 docker run -d --name nginx nginx # 拷贝容器内 Nginx 默认配置文件到本地当前目录下的 /usr/docker/docker-nginx docker cp nginx:/etc/nginx ./nginx docker cp nginx:/var/log/nginx ./logs docker cp nginx:/usr/share/nginx/html ./html # 停止容器 docker stop nginx # 删除容器 docker rm nginx
-
部署容器
# nginx docker run \ -p 80:80 \ --name nginx \ -v /usr/docker/docker-nginx/html:/usr/share/nginx/html \ -v /usr/docker/docker-nginx/logs:/var/log/nginx \ -v /usr/docker/docker-nginx/nginx:/etc/nginx \ --restart always \ --name nginx \ -d nginx # tomact docker run \ -p 8080:8080 \ --name tomact \ -v /usr/docker/docker-tomcat/tomcat:/usr/local/tomcat \ --restart always \ --name tomact \ -d tomact # nacos docker run -it --name nacos -p 8848:8848 -e MODE=standalone -v /usr/docker/docker-nacos/conf:/home/nacos/conf -v /usr/docker/docker-nacos/data:/home/nacos/data -v /usr/docker/docker-nacos/logs:/home/nacos/logs -d nacos/nacos-server docker run -d -e MODE=standalone --name nacos-server -p 8848:8848 -v /home/docker/docker-nacos/conf:/home/nacos/conf -v /home/docker/docker-nacos/data:/home/nacos/data -v /home/docker/docker-nacos/logs:/home/nacos/logs nacos/nacos-server docker run --name nacos -p 8848:8848 \ --env MODE=standalone \ --env SPRING_DATASOURCE_PLATFORM=mysql \ --env MYSQL_SERVICE_HOST=rm-bp1j8k9s2330jz5jdyo.mysql.rds.aliyuncs.com \ --env MYSQL_SERVICE_PORT=3306 \ --env MYSQL_SERVICE_DB_NAME=nacos \ --env MYSQL_SERVICE_USER=root \ --env MYSQL_SERVICE_PASSWORD=Whb18772916901 \ -d -v /home/docker/docker-nacos/conf:/home/nacos/conf -v /home/docker/docker-nacos/data:/home/nacos/data -v /home/docker/docker-nacos/logs:/home/nacos/logs nacos/nacos-server # micro-gateway docker build -t micro-gateway:latest . docker run -p 9001:9001 --name micro-gateway -v /opt/logs:/opt/logs --restart always -d micro-gateway # micro-uaa docker build -t micro-uaa:latest . docker run -p 10002:10002 --name micro-uaa -v /opt/logs:/opt/logs --restart always -d micro-uaa # micro-user docker build -t micro-user-service:latest . docker run -p 10010:10010 --name micro-user-service -v /opt/logs:/opt/logs --restart always -d micro-user-service # micro-dynamic docker run -p 10003:10003 --name micro-dynamic-service -v /opt/logs:/opt/logs --restart always -d micro-dynamic-service # xxl-job docker build -t xxl-job:latest . docker run -p 8080:8080 -v /tmp:/data/applogs --name xxl-job-admin -d xxl-job #minio docker run -p 9000:9000 -p 9090:9090 \ --name minio \ -d --restart=always \ -e "MINIO_ROOT_USER=wuhongbin" \ -e "MINIO_ROOT_PASSWORD=whb18772916901" \ -v /home/docker/docker-minio/data:/data \ -v /home/docker/docker-minio/config:/root/.minio \ minio/minio server \ /data --console-address ":9090" -address ":9000"
-d # 表示在一直在后台运行容器*
-p 80:80 # 对端口进行映射,将本地80端口映射到容器内部的80端口*
–name # 设置创建的容器名称
-v # 将本地目录(文件)挂载到容器指定目录;
以下是基本https的访问配置
server {
listen 80;
location / {
return 301 https://$host$request_uri;
}
}
server {
#SSL 默认访问端口号为 443
listen 443 ssl;
#请填写绑定证书的域名
server_name www.wuhobin.top;
#请填写证书文件的相对路径或绝对路径
ssl_certificate /usr/docker/docker-nginx/nginx/cert/www.wuhobin.top_bundle.crt;
#请填写私钥文件的相对路径或绝对路径
ssl_certificate_key /usr/docker/docker-nginx/nginx/cert/www.wuhobin.top.key;
ssl_session_timeout 5m;
#请按照以下协议配置
ssl_protocols TLSv1.2 TLSv1.3;
#请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://www.wuhobin.top:8080;
proxy_set_header HOST $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
client_max_body_size 100m;
}
}