分享好友 最新动态首页 最新动态分类 切换频道
CentOS 7 Docker安装部署Go Web
2024-12-26 19:50

Docker 是一种容器技术,它部署简单,能很好的进行服务隔离,生成镜像,Push到镜像仓库,其他机器一键拉取部署。

Docker分为社区版CE和企业版EE,社区版是免费提供给个人和小型团队使用,企业版会提供额外的收费服务。

CentOS 7使用Yum安装Docker,部署Go Web网站。本Go Web网站是我的个人愽客(http://snaill.net/),使用Gin+Gorm+Mysql+Nginx开发,本次只将Web愽客程序部署在Docker中,Mysql、Nginx暂时还部署在宿主机上。

一、安装Docker

1、Docker要求CentOS系统内核版本高于3.10,通过 uname –r 命令查看内核版本

2、使用 sudo yum update 命令更新yum包到最新

sudo yum update

3、如果安装过旧版本的话,卸载旧版本

sudo yum remove docker  docker-common docker-selinux docker-engine

4、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

5、设置yum源信息

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

国内可使用阿里云,docker官方速度慢

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

6、可查看所有docker版本,并选择特定版本安装

yum list docker-ce --showduplicates | sort -r

7、安装Docker

sudo yum install docker-ce

如果想安装其他版本,在后面加上版本号,如:sudo yum install docker-ce-3:19.03.8

8、启动Docker

systemctl start docker

启动 start,停止 stop,重启 restart

设置开机启动

systemctl enable docker

查看Docker版本 docker version

到止Docker安装完成

二、部署Go Web

1、交叉编译Web项目

由于开发环境是windows,所以进行交叉编译linux版Web项目,vs code终端PowerShell命令

$env:GOOS="linux"   -- 设置运行系统
go build            -- 编译

2、由于Mysql装在宿主机上,Web需要访问,修改DB连接IP为172.17.0.1

由于mysql默认只能本机登录,通过以下命令,设置允许远程登录

mysql>GRANT ALL PRIVILEGES ON *.* TO 'your username'@'172.17.0.2' IDENTIFIED BY 'your password' WITH GRANT OPTION;

your username 和 your password 改成 mysql 数据库的用户名和密码

安装Docker后,172.17.0.2为Docker的默认IP

进入Docker:docker exec -it CONTAINER_ID sh

查看ip:ifconfig

宿主机的默认IP为172.17.0.1

3、编写Dockerfile文件,在项目根目录下新建名为Dockerfile的文件,内容如下,推荐第二种方式

3.1、项目文件全部打包到镜像里

FROM alpine

WORKDIR /wblog
COPY wblog .
COPY conf/ conf/
COPY sitedata/ sitedata/
COPY static/ static/
COPY views/ views/

RUN apk add -U tzdata
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 
  && echo 'Asia/Shanghai' >/etc/timezone

EXPOSE 8090

ENTRYPOINT ["https://www.cnblogs.com/alan-lin/archive/2020/07/05/wblog"]

3.2、配置等静态文件不打包到镜像里,运行时再映射到宿主机目录,修改配置而无需重新打包

FROM alpine

WORKDIR /wblog 
COPY wblog .

RUN apk add -U tzdata
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 
  && echo 'Asia/Shanghai' >/etc/timezone

EXPOSE 8090

ENTRYPOINT ["https://www.cnblogs.com/alan-lin/archive/2020/07/05/wblog"]

4、上传编译好的Web项目文件到 CentOS 机器上

5、根据 Dockerfile 打包 Docker 镜像

在 CentOS 上进入到项目根目录下,执行 docker build 打包镜像,命令最后的 . 指以当前目录下的 Dockerfile 文件打包镜像

docker build -t wblog:v1.0 .

6、打包完成后,输入 docker images 查看镜像

7、Docker 启动镜像,运行项目,两种方式对应3中的两种方式,推荐第二种方式

7.1、项目文件全在镜像中,运行 Docker 镜像

docker run -d -p 8090:8090 --name wblog wblog:v1.0

7.2、配置等静态文件映射到宿主机本地,运行 Docker 镜像,-v docker目录:宿主机目录

docker run -v /data/www/wblog_docker/conf:/wblog/conf -v /data/www/wblog_docker/sitedata:/wblog/sitedata -v /data/www/wblog_docker/static:/wblog/static -v /data/www/wblog_docker/views:/wblog/views -v /data/www/wblog_docker/log:/wblog/log -d -p 8090:8090 --name wblog wblog:v1.0

8、查看Docker运行情况 docker ps

STATUS 为Up xxx  状态运行,PORTS 为 0.0.0.0:8090->8090/tcp  宿主机端口映射Docke端口成功,镜像容器运行成功。

 

个人博客就是部署在Docker中的,用Nginx代理,将snaill.net转发到8090端口

 

docker 常用命令

打包镜像:docker build -t wblog:v1.0 .

运行Docker镜像:docker run -d -p 8090:8090 --name wblog wblog:v1.0

静态文件映射到宿主机本地,运行Docker镜像:

docker run -v /data/www/wblog_docker/conf:/wblog/conf -v /data/www/wblog_docker/sitedata:/wblog/sitedata -v /data/www/wblog_docker/static:/wblog/static -v /data/www/wblog_docker/views:/wblog/views -v /data/www/wblog_docker/log:/wblog/log -d -p 8090:8090 --name wblog wblog:v1.0

查看运行镜像容器:docker ps -a

启动/停止/重启镜像容器:docker start/stop/restart

删掉镜像容器:docker rm ,删除前需先停止镜像容器

删掉镜像:docker rmi ,删除前需先删除镜像容器

查看镜像容器元信息:docker inspect

进入镜像容器:docker exec -it CONTAINER_ID sh

go编译
windows编译成linux版,vs code终端PowerShell命令
go env -- 查看环境变量
$env:GOOS="linux"
go build
$env:GOOS="windows"
windows编译成mac版:$env:GOOS="darwin"
启动
nohup https://www.cnblogs.com/alan-lin/archive/2020/07/05/wblog &

博客地址:https://www.snaill.net/post/9

最新文章
揭秘AI绘画神器——如何一键生成超逼真美女写真
接下来,让我们一起看看如何使用【搜狐简单AI】生成美女写真。第一步:注册并登录访问搜狐简单AI的官方网站,点击注册并创建一个账户,完成后登录。画面简洁,操作轻松。第二步:选择助手在主界面点击“创建”选项,将会有多个AI助手供你选
青年教师成长之路心得体会
青年教师成长之路心得体会  本学期要求青年教师真正更新观念,学以致用,把理论学习同自己的教学实践相结合,不断丰富教育教学理论知识和提高教育教学能力。下面是小编整理的青年教师成长之路心得体会(精选10篇),欢迎阅读!  到这个
网易邮箱注册指南:新手快速上手的详细步骤解析
简介:随着电子邮件在人们日常生活和工作中扮演着越来越重要的角色,拥有一个功能完善的电子邮件账户成为了必要。网易邮箱是中国用户常用的电子邮件服务之一,其简单易用的界面和强大的功能深受用户喜爱。本文将为您提供一份详细的网易邮箱
揭秘淘宝最新骗局,网购安全指南 2017版
摘要:本文将揭露2017年淘宝最新骗局,包括虚假优惠、假冒商品、钓鱼网站等,提醒消费者提高警惕,保护自身网购安全。通过阅读本文,您将了解到如何识别骗局、防范风险,并学会正确选择信誉良好的卖家和优质商品。希望本文能够帮助广大网购
山石说AI|超越传统边界:大模型在网络安全中的多维创新
【山石说AI】•第13篇大模型在网络安全中的最新应用进展(二)除了在传统安全场景中的卓越表现,大模型的潜力还在不断延伸。从物联网设备指纹识别到安全补丁检测,大模型正在为安全技术的边界赋予无限可能。本章将带您领略这些前沿探索,感
淘宝直通车广告位置有哪些
本文主题淘宝,淘宝直通车直通车扣费公式,,淘宝问答。淘宝直通车对于网站上的卖家用户或者是买家用户来说,是一款比较耳熟能详的推广工具了,它是淘宝卖家用户朋友首选的推广方式。那么你们知道淘宝直通车广告位置有哪些呢?一、淘宝直通车广
新奥门最准资料免费长期公开|智能解答解释落实
  在今天这个信息爆炸的时代,各种信息资源如同大浪淘沙,如何从中甄选出最可靠、最新的资料变成了一个十分迫切的需求。对于澳门这个特别行政区而言,提供资讯的准确性、及时性及其公开性对居民的日常生活各个方面都极为重要。“新奥门最
免费推广资源大揭秘:十大优质网站推荐与入口分享
在如今竞争激烈的市场中,企业需要有效管理客户关系。十大免费CRM网站提供了多种功能,帮助企业收集客户数据、跟踪销售进度并提升客户满意度。无论是初创公司还是小型企业,这些工具都能很好地适应不同的需求,提高工作效率。黄色软件常常
seo网络排名优化技巧(广州新塘排名SEO优化公司)
SEO网络排名优化技巧是指通过优化网站的内容和结构,提高网站在搜索引擎结果页(SERP)中的排名,从而吸引更多的潜在客户和流量的技巧。下面,本文将从什么是SEO网络排名优化技巧、为什么要进行SEO网络排名
相关文章
推荐文章
发表评论
0评