欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

docker部署前后端分离项目手记

程序员文章站 2022-06-13 16:57:33
...

简介

刚刚接触基础的运维工作,采用的是docker部署的方式。其中,坑也踩了不少,记录一下。

摘要

为了方便部署,可以在本地安装docker,在本地使用docker打包好项目后上传至容器镜像服务,比如阿里云等,具体的使用阿里云等会有说明;
在服务端通过docker拉取上传的镜像,并创建容器。

详情

一、windows安装docker

1、下载安装包(https://www.docker.com/products/docker-desktop)
2、安装。如果操作系统不是专业版,则有可能报错。此时需要用管理员身份打开cmd,给操作系统伪装成专业版,命令如下:
REG ADD “HKEY_LOCAL_MACHINE\software\Microsoft\Windows NT\CurrentVersion” /v EditionId /T REG_EXPAND_SZ /d Professional /F

二、打包镜像(以Java项目为例)

1、打包前请结合自己需求准备好DockerFile文件,并和build好的jar包放在同一目录下,执行一下命令:
docker build -t 镜像名称 .
请注意最后的那个点不能丢了
等待打包完毕后,执行docker images命令 可以查看刚刚打包好的镜像。为了验证镜像的正确性,支持在本地执行docer run 命令创建容器,测试无误后进行上传;

三、上传镜像

1、docker tag 镜像ID……
2、docker push ……
说明:具体命令,提供服务的平台会有详细说明,步骤也很简单。

四、服务器操作

1、执行docker pull下载镜像;
2、docker run -d -p宿主机端口:容器端口 --name 容器名称。

实例来一个吧 光说不练嘴把式

实例

一、客户端下载docker

二、打包镜像

1、准备dockeFile

FROM java:8

RUN mkdir -p /xxx/xxx && \
  cd /xxx/xxx &&\
  touch application.properties

COPY /xxx.jar /xxx/app.jar

EXPOSE 9041

WORKDIR /xxx

CMD ["sh", "-c", "java -server -Xmx512m -Xms256m -Xss256k -jar app.jar"

2、打包

docker build -t 镜像 .

3、上传

docker images  获取创建的容器id
docker tag……
docke psuh……

服务端操作

1、创建docker mysql容器

docker search mysql 寻找mysql版本
docker pull 选择一个版本下载 --> docker pull mysql:5.6
docker image 查看下载的MySQL镜像
// 创建挂载目录,避免重启后数据丢失
mkdir -p /usr/data/mysql/logs /usr/data/mysql/data /usr/data/mysql/conf
cd /data/mysql
touch my.cnf
// 然后使用vim编辑my.cnf文件,文件内容如下:
#-----------------------------开始-----------------------------------
[mysqld]
user=mysql
character-set-server=utf8
default_authentication_plugin=mysql_native_password
secure_file_priv=/var/lib/mysql
expire_logs_days=7
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
max_connections=1000
 
[client]
default-character-set=utf8
 
[mysql]
default-character-set=utf8
#------------------------------结束---------------------------------
docker run --restart=always -p 3306:3306 --name mysql -v /usr/data/mysql/conf:/etc/mysql  -v /usr/data/mysql/logs:/var/log/mysql -v /usr/data/mysql/data:/var/lib/mysql -v /usr/data/mysql/my.cnf:/etc/mysql/my.cnf -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

2、创建Java后台容器

docker run -d --name xxx -p 8080:9041 --link MySQL容器名称:localhost -v /root/xxx/xxx/result:/xxx/result -v /root/xxx/xxx/log:/xxx/log -v /root/xxx/xxx/config:/xxx/config 拉取的镜像ID

到现在后台部署完成了,部署前端后就可以访问后台喽,数据库也可以远程连接了。

相关标签: 运维