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

简介

刚刚接触基础的运维工作,采用的是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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值