在之前开发了一个小型博客网站项目,为了使项目能够在线上环境运行并供他人访问,我采用了 Docker 容器化技术,并结合阿里云服务器完成了项目部署。后续还计划为网站进行域名备案,以提升网站的专业性和可访问性。
基础运行命令:
plaintext
docker run -d --name mysql -p 3306:3306 -e TZ=Asia/Shanghai -e MYSQL_ROOT_PASSWORD=密码 mysql
进入容器命令:
plaintext
docker exec -it mysql bash
数据卷挂载:
plaintext
docker run -d --name mysql -p 3306:3306 -e TZ=Asia/Shanghai -e MYSQL_ROOT_PASSWORD=密码 -v /root/mysql/data:/var/lib/mysql -v /root/mysql/init:/docker-entrypoint-initdb.d -v /root/mysql/conf:/etc/mysql/conf.d mysql:5.7.26
Dockerfile 文件:
plaintext
基础镜像使用java
FROM openjdk:8
作者
MAINTAINER jie
VOLUME 指定临时文件目录为/tmp,在主机/var/lib/docker目录下创建了一个临时文件并链接到容器的/tmp
VOLUME /root/jieBlog
将jar包添加到容器中并更名为zzyy_docker.jar
ADD MyBlogs-0.0.1-SNAPSHOT.jar jieBolg.jar
运行jar包
RUN bash -c 'touch /jieBolg.jar'
ENTRYPOINT ["java","-jar","/jieBolg.jar"]
暴露8081端口作为服务端口
EXPOSE 8081
构建:
plaintext
docker build -t jieblog-docker:1.0 .
运行:
plaintext
docker run -d -p 8081:8081 723014df12d7
docker-compose.yml:
version: "3.8"
services:
mysql:
image: mysql:5.7.26
container_name: mysql
ports:
- "3306:3306"
environment:
TZ: Asia/Shanghai
MYSQL_ROOT_PASSWORD: 1234567891
volumes:
- "/root/mysql/conf:/etc/mysql/conf.d"
- "/root/mysql/data:/var/lib/mysql"
- "/root/mysql/init:/docker-entrypoint-initdb.d"
networks:
- jie-net
bolg:
build:
context: .
dockerfile: Dockerfile
container_name: bolg
ports:
- "8081:8081"
networks:
- jie-net
depends_on:
- mysql
nginx:
image: nginx
container_name: nginx
ports:
- "80:80"
volumes:
- /root/nginx/conf.d:/etc/nginx/conf.d
depends_on:
- bolg
networks:
- jie-net
networks:
jie-net:
driver: bridge
启动 / 停止:
plaintext
docker compose up -d
docker compose down
跟踪日志:
plaintext
docker logs -f bolg
mysql-nginx-jar-域名:
通过上述 Docker 相关操作,已成功在阿里云服务器上部署了运行几年开发的小破站,实现了项目的容器化运行,保证了服务的稳定性和可移植性,目前可通过服务器公网 IP 和对应端口访问网站。
下一步计划为网站申请合适的域名,并完成域名备案手续。备案完成后,将域名与服务器进行绑定,实现通过域名直接访问网站,进一步提升网站的专业性和用户体验
评论