计算机系统应用教程网站

网站首页 > 技术文章 正文

Docker 备忘录 - 07. 常用容器部署实例

btikc 2024-09-30 13:01:22 技术文章 12 ℃ 0 评论

一、tomcat

# 拉取 tomcat 镜像
docker pull tomcat

# 启动容器
docker run -d -p 8080:8080 \
--name tomcat \
-v /opt/tomcat/webapps:/usr/local/tomcat/webapps \
-v /opt/tomcat/logs:/usr/local/tomcat/logs \
tomcat

注意,新版 tomcat 的 webapps 下是没有东西的,想要访问 tomcat 默认的首页,需要将 webapps.dist 目录下的内容拷贝到 webapps 下。

二、nginx

这个实例与上面的不同之处在于,我们想要挂载 nginx 的配置文件,而这些配置文件本身是在容器中存在的,如果我们直接使用 -v 挂载将导致这些数据的丢失,因此我们可以先将这些数据复制出来再挂载。

# 创建要挂载的目录
mkdir -p /opt/docker/nginx/conf

# 启动容器并将配置文件与html目录数据拷贝出来
docker run -d --name liwy-nginx nginx

docker cp \
liwy-nginx:/etc/nginx/nginx.conf \
/opt/docker/nginx/conf/

docker cp \
liwy-nginx:/etc/nginx/conf.d \
/opt/docker/nginx/conf/

docker cp \
liwy-nginx:/usr/share/nginx/html \
/opt/docker/nginx/

# 删除容器再重新启动并挂载目录
docker rm -f liwy-nginx
docker run -d -p 80:80 \
--name liwy-nginx \
--restart=always \
--privileged=true \
-v /opt/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /opt/docker/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /opt/docker/nginx/log:/var/log/nginx \
-v /opt/docker/nginx/html:/usr/share/nginx/html \
nginx

三、redis

# 创建要挂载的配置文件目录,
# 并将 redis.conf 文件放到该目录下
mkdir -p /opt/docker/redis/conf
cd /opt/docker/redis/conf
wget https://raw.githubusercontent.com/redis/redis/7.2/redis.conf

# 启动容器
docker run -d -p 6379:6379 \
--restart=always \
--name liwy-redis \
--privileged=true \
-v /opt/docker/redis/conf:/etc/redis \
-v /opt/docker/redis/data:/data \
-v /etc/localtime:/etc/localtime \
redis:7.2.4 redis-server /etc/redis/redis.conf

redis 配置文件可以从 https://redis.io/docs/management/config/ 下载,下载后按需修改即可。

四、部署 Springboot 项目

1. 准备一个 Springboot 项目 jar 包:

liwy-springboot-1.0-SNAPSHOT.jar

2. 编写 Dockerfile 脚本

# 使用基础的 Java 17 镜像
FROM openjdk:17

# 镜像描述信息
LABEL author="liwy"
LABEL version="1.0"
LABEL description="liwy-springboot project."

# 设置工作目录
WORKDIR /opt/liwy-springboot/

# 设置环境变量来指定时区
ENV TZ=Asia/Shanghai
# 将时区文件复制到容器中的特定路径
RUN ln -sf /usr/share/zoneinfo/{TZ} \
/etc/localtime && echo "{TZ}" > /etc/timezone

# 将 jar 包添加到容器中并更名为 app.jar
COPY liwy-springboot-1.0-SNAPSHOT.jar app.jar

# 对外暴露 8080 端口
EXPOSE 8080

# 运行 jar 包
CMD ["java","-Djava.security.egd=file:/dev/./urandom", \
"-jar", "app.jar"]

3. 构建镜像

将 jar 包与 Dockerfile 文件放在同一目录下:

docker build -t liwy-springboot:1.0 .

4. 运行容器

docker run -d -p 8080:8080 \
--name liwy-springboot \
liwy-springboot:1.0

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表