docker部署crownblog项目到阿里云的方法步骤

前端项目打包

  • 找到.env.production 修改为自己的ip或者域名地址
  • 执行命令npm run build生成dist文件
  • 把dist文件拷贝到后端项目目录下(使用go自带的http服务来部署前端项目)

后端项目部署

一、服务器的配置

  • 购买阿里云服务器
  • 打开服务器的8085和3306端口
  • 使用Xshell登陆服务器

二、安装docker

官方文档: docs.docker.com/get-docker/

选择对应的系统进行查看,以ubuntu 18.04 LTS为例

卸载旧版本

sudo apt-get remove docker docker-engine docker.io containerd runc

Reading package lists... Done
Building dependency tree
Reading state information... Done
Package 'docker-engine' is not installed, so not removed
Package 'docker' is not installed, so not removed
Package 'containerd' is not installed, so not removed
Package 'docker.io' is not installed, so not removed
Package 'runc' is not installed, so not removed
0 upgraded, 0 newly installed, 0 to remove and 3 not upgraded.

添加新版本仓库

sudo apt-get update

udo apt-get install \
  apt-transport-https \
  ca-certificates \
  curl \
  gnupg-agent \
  software-properties-common

获取官方GPG key

# curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

验证key,如果输出的是下列内容,则说明正确

# apt-key fingerprint 0EBFCD88

pub  rsa4096 2017-02-22 [SCEA]
   9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
uid      [ unknown] Docker Release (CE deb) <docker@docker.com>
sub  rsa4096 2017-02-22 [S]

添加仓库地址(用国内的仓库下载,速度较快)

$ sudo add-apt-repository \
  "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/ \
  $(lsb_release -cs) \
  stable"

更新仓库和安装

 $ sudo apt-get update

 $ sudo apt-get install docker-ce docker-ce-cli containerd.io

进行验证,运行hello-world

$ docker pull hello-world
$ docker run hello-world
#出现以下信息,表示docker安装成功,已经可以正常运行
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:

  1. The Docker client contacted the Docker daemon.
  2. The Docker daemon pulled the "hello-world" image from the Docker Hub.(amd64)
  3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading.
  4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal.
 To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash
 Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/
 For more examples and ideas, visit:
 https://docs.docker.com/get-started/

使用阿里镜像站来加速

地址:mirrors.aliyun.com/

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://XXX你的id.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

三、拉取镜像和创建镜像和容器编排

Mysql服务器的镜像

首先,个人非常不建议mysql用docker来部署,有几个原因:

  • 必须做数据卷的映射,千万不能 将数据库数据放在docker容器中运行,否则一但删除容器数据将全部清空,所以一定要做数据持久化!!;
  • 不利于io,数据读写在容器中读写一次,在绑定的卷中还要读写一次,两倍读写压力,性能上要打折扣。

如果非要在docker上部署mysql,可以这么做

#首先确定mysql是否能被搜素到,这步可以跳过,也可以在dockerhub.com中搜索
docker search mysql

#拉取镜像
docker pull mysql  #这里默认是拉取的最新版本,如果需要特定版本可以在镜像后面添加tag,具体版本信息可以在dockerhub.com查询

#特定版本拉取,比如要拉取8.0.22(版本号一定要是官方放出的版本号,否则是查找不到的)
docker pull mysql:8.0.22

#这时可以查看下拉取的镜像
docker images

#运行镜像
docker run -d -p 3306:3306 -v /crownBlog/datadir:/var/lib/mysql --name crownBlog-mysql -e MYSQL_ROOT_PASSWORD=123456  mysql

# -d 表示后台运行,并返回容器id
# -p 3006:3306 表示端口映射,具体为 -p 主机端口:容器端口
# --name 给容器取个名字
# -e MYSQL_ROOT_PASSWORD=password 给mysql root管理员设置密码
# -v /crownBlog/datadir:/var/lib/mysql 添加数据卷
/crownBlog/datadir是主机的数据库路径
/var/lib/mysql是容器中的数据库路径,这一步非常重要

#进入容器配置
docker exec -it crownBlog-mysql bash

root@ed9345077e02:/# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.22 MySQL Community Server - GPL
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its affiliates.
Other names may be trademarks of their respective owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

# 之后就和一般情况下mysql的操作一样了。

四、创建数据库并导入数据文件

  • 使用Xftp连接到服务器
  • 把本地的sql文件上传到服务器
  • 使用docker cp命令把sql文件复制到容器
docker cp crownBlog.sql crownBlog-mysql:/home
(docker cp 第一个参数指定本地文件或者文件夹,第二个参数指定容器及容器内的目标文件夹)

登入容器并登录mysql: docker exec -it crownBlog-mysql mysql -uroot -p123456

执行sql文件 :source /home/crownBlog.sql

五、制作crownblog项目镜像

使用Xftp把后端代码上传到服务器
进入代码编写Dockerfile文件

FROM golang:latest
RUN go env -w GO111MODULE=on
RUN go env -w GOPROXY=https://goproxy.cn,https://goproxy.io,direct

WORKDIR $GOPATH/src/crownBlog
COPY . $GOPATH/src/crownBlog

RUN go build .

EXPOSE 8085

ENTRYPOINT ["./blog"]

配置crownblog的config文件
mod改为release

srv改为服务器ip 数据库host改为刚才映射的数据库ip

六、生成镜像

在Dockerfile这个目录下

$ docker build -t crownblog .
$ docker run -d -p 8085:8085--name crownblog crownblog

#这样访问服务器IP:8085就可以访问网站了

到此这篇关于docker部署crownblog项目到阿里云的方法步骤的文章就介绍到这了,更多相关docker部署crownblog到阿里云内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 阿里云Linux CentOS 7 Docker部署使用gogs搭建自己的git服务器

    一.前言 Git是目前优秀和流行的源代码管理工具.而GitHub是一个面向开源及私有软件项目的托管云平台,但开源免费,私有收费.而公司出于商业化等目的需要搭建自己的源代码托管服务器.通过网上了解Gogs是一款不错git管理系统,而且是国内开源项目,今天我们就使用Gogs基于阿里云Linux CentOS 7 Docker部署搭建自己的git服务器. Gogs介绍(官网):https://gogs.io/ 二.步骤 1.  购买一个阿里云服务器,系统选择Linux CentOS 7 2.  doc

  • 阿里云esc服务器Docker部署单节点Mysql的讲解

    1.下载加速版msyql   docker pull hub.c.163.com/library/mysql:5.7 2.更名 docker tag hub.c.163.com/library/mysql:5.7 mysql:5.7 3.启动 docker run -it --rm --name mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d mysql 4.设置mysql远程登录 docker exec -it mysql bash my

  • Docker镜像的制作,上传,拉取和部署操作(利用阿里云)

    由于学习过程中发现push镜像的时候一直超时,所以直接把阿里云的Docker仓库申请一个(管理中心–>创建镜像仓库–>我的是华东2绑定github账户即可),搞定!以后push就用这个仓库,pull的时候使用加速器,注意切换根据使用场景进行切换,dockerhub丢弃--记录了一下操作流程: 1.创建命名空间hhu(以当前学校为单位,只能小写,每个账号只能创建5个),创建菜鸟Docker镜像仓库docker1(绑定github中某个仓库,个人可以随意,这个仓库镜像就像是一个app,可以不断的更

  • docker部署crownblog项目到阿里云的方法步骤

    前端项目打包 找到.env.production 修改为自己的ip或者域名地址 执行命令npm run build生成dist文件 把dist文件拷贝到后端项目目录下(使用go自带的http服务来部署前端项目) 后端项目部署 一.服务器的配置 购买阿里云服务器 打开服务器的8085和3306端口 使用Xshell登陆服务器 二.安装docker 官方文档: docs.docker.com/get-docker/ 选择对应的系统进行查看,以ubuntu 18.04 LTS为例 卸载旧版本 sudo

  • AndroidStudio上传本地项目到码云的方法步骤(OSChina)

    本文介绍了AndroidStudio上传本地项目到码云的方法步骤(OSChina),分享给大家,具体如下: 1.安装Git 2.注册oschina账户.设置ssh等等 在码云创建仓库 打开本地项目,添加Git管理 选你想要管理的目录,一般选项目最外层 此时所有的文件变成红色 右键项目名称点击git -> add 然后所有文件变绿色 点击提交 然后推送 复制你刚才在码云创建的地址,复制HTTPS的 定义默认的远程地址,点OK后输入密码 如果发现没有Define remote 可以在这里设置 点击

  • Vue项目部署的实现(阿里云+Nginx代理+PM2)

    最近部署一个Vue项目到阿里云ECS上,因为项目涉及一些跨域请求,所以采用了Nginx代理请求本地的node服务(利用pm2做进程管理).node服务借助axios设置headers的referer.host转发请求,解决跨域请求问题. 先交代下在阿里云ECS里安装的部署环境:phpstudy(php调试运行大礼包,里面包含nginx.mysql等,还能监控端口占用情况).pm2(node服务进程管理工具).node.git等等. 部署过程 拉去GitHub项目代码至root目录下(找到安装ph

  • Docker部署springboot项目到腾讯云的实现步骤

    目录 服务器的配置 安装MySql 将springboot项目打成jar包 编写Dockfile文件 访问 删除重做(更新)镜像 服务器的配置 服务器配置总结为三个,防火墙,端口,和安全组 1.防火墙 查看防火墙状态 firewall-cmd --state 没有开启则开启防火墙 systemctl start firewalld.service 2.端口 添加对外开放的端口 firewall-cmd --zone=public --add-port=端口号/tcp --permanent fi

  • Docker 部署Django项目的方法示例

    使用docker部署django项目也很简单,挺不错,分享下 环境 默认你已安装好docker环境 django项目大概结构 (p3s) [root@opsweb]# tree opsweb opsweb ├── apps ├── logs ├── manage.py ├── media ├── opsweb ├── README.md ├── requirements.txt └── static 编写Dockerfile 这里指定 Python 版本为docker官方提供的 "0.0.0.0

  • IDEA集成docker部署springboot项目的全过程

    目录 1.IDEA下载docker插件 2.云服务器docker 2.1 docker的安装 2.2 停止docker服务 2.3 docker配置文件修改 2.4 刷新配置文件 2.5 启动docker服务 2.6 防火墙增加2375端口 2.7 阿里云增加安全组规则 2.8 测试远程HTTP连接 3. maven项目打包 3.1 打包插件 3.2 资源文件的打包及打包后的位置 3.3 docker插件 3.4 clean.install和docker build 4.遇到的坑 5.参考 1.

  • 浅析Docker私有镜像库与阿里云对象存储 OSS

    Docker私有镜像库 Docker 私有镜像库与阿里云对象存储 OSS 镜像管理是 Docker 的核心,为了满足企业或组织内部分享镜像,Docker 官方在 Github上 建立了一个开源项目 docker-registry,专门用于自建 Docker 的私有镜像库. 快速启动支持阿里云对象存储 OSS 的 docker-registry 您可以从 https://github.com/docker/docker-registry 下载并安装 docker-registry,通过 pip 安

  • CentOS8上用Docker部署开源项目Tcloud的教程

    一.安装Docker 1.我是虚拟机装的Centos7,linux 3.10 内核,docker官方说至少3.8以上,建议3.10以上(ubuntu下要linux内核3.8以上) root账户登录,查看内核版本如下 uname -a 2.把yum包更新到最新 yum update (期间要选择确认,输入 y 即可) 3.安装需要的软件包,yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的 yum install -y yum-utils

  • 使用docker部署dubbo项目的方法步骤

    1.首先用springboot构建一个简单的dubbo测试程序,并引入相关依赖 编写公共接口api 编写provider实现UserSvice的方法,并暴露服务 编写provider的配置文件 编写Consumer 通过调用provider的服务获取user信息并返回 consumer的配置文件 测试程序已完成 在本地启动,看看程序是否能正常调用服务 启动zookeeper 先启动provider端再启动consumer端 通过dubbo的控制台看到我们的服务已经注册成功 通过访问本地,看到我们

  • Centos8.3、docker部署springboot项目实战案例分析

    引言 目前k8s很是火热,我也特意买了本书去学习了一下,但是k8s动辄都是成百上千的服务器运维,对只有几台服务器的应用来说使用k8s就有点像大炮打蚊子.只有几台服务器的应用运维使用传统的tomcat部署很繁琐,效率不高,动辄十几分钟部署一台服务,使用jenkins部署又太过复杂,斟酌许久我还是选择了使用docker+dockerFile的方式部署.这种方式部署简单高效. docker安装 curl -fsSL https://get.docker.com | bash -s docker --m

随机推荐