摘要:事情是这样的一个人程序员,用写了个,写完后不会部署是的,这个人就是我今天真的是要被自己笑死终于有机会在公司项目中使用进行开发,整个开发过程相当亢奋然而当跟前端小哥哥联调完接口后,小哥哥问我什么时候能给线上地址一脸懵忘记还有上线这回事了往往自
事情是这样的
一个人程序员,用golang写了个server,写完后...不会部署 : )
是的,这个人就是我...
今天真的是要被自己笑死
终于有机会在公司项目中使用golang进行开发,整个开发过程相当亢奋!然而...当跟前端小哥哥联调完接口后,小哥哥问我什么时候能给线上地址
(一脸懵)忘记还有上线这回事了
往往自己业余写的golang项目就直接 go build 然后拖到服务器然后运行一下搞定
但是这是公司项目啊!!! 会给你ftp??? 你可以碰到服务器??? (仿佛听到了DBA小哥哥的心声)
于是... 我找到了DBA小哥哥,问该如何发布
“你直接打包一个rpm或者给个docker吧”
哈?
rpm? 你确定不是npm?
docker??? (卧槽,我好像两年前就该看看了) 我还没看过...
于是乎虚心请教DBA小哥哥,“能麻烦大致跟我讲下这个rpm是怎么个打法吗?”
“好啊,你就先……*¥%#¥然后再$%……%%”
“哦,好,我回去看看”
然后我就回来学起了docker 23333333333
好在部门内有个老司机
直接就让我上了车
首先我们要先down一个docker
mac版: https://www.docker.com/docker...
能打开mac已经证明会安装了,我们就不再复述了
安装完成后到启动台里面点一下可爱的小鲸鱼
然后在命令行输入
$ docker info
看到一堆乱七八糟的东西输出证明安装成功
我们需要从镜像市场down一个linux镜像~
https://store.docker.com 搜索 centos 会看到
选择哪个版本完全混眼熟 哈哈哈哈
看到具体版本号 在命令行执行
$ docker pull centos:7.2.1511
Already exists 是因为在写这篇记录之前已经pull过了 哈哈哈
装好镜像后通过docker images来查看已存在的镜像
$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE centos 7.2.1511 0a2bad7da9b5 5 months ago 195MB
下面我们来让这个镜像跑起来
$ docker run -p 8888:80 --name godocker -e ENV="dev" -it 0a2bad7da9b5 /bin/bash
-p 本机端口号:映射到docker的端口号(当本机的8888请求被访问时会进入到docker的80端口)
--name docker实例的名称(想怎么起怎么起)
-e docker的环境变量
-v 类似于软链,将docker的某个路径映射到本机的实体路径(具体的可以针对性百度哦)
-it 后面跟docker image 的id
敲下回车~ 哎呦进去了!
不急不急 我们先退出来
exit
赶快 赶快 build一个go server
$ cd /xxx/xxx/xxx/xxx/xxx/gotest $ touch main.go $ vi main.go package main import "fmt" func main() { fmt.Println("hello word") } :x $ go build for linux (当然是伪代码啦) # 会生成一个跟目录同名的可执行文件 gotest # 将文件拷贝到docker镜像中 $ docker cp /Users/wangboyan/development/golang/src/gotest/gotest godocker:/var/www # 然后进入docker中查看刚才的gotest是否存在 $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES b2802801c24c 0a2bad7da9b5 "/bin/bash" 14 minutes ago Up 14 minutes 0.0.0.0:8888->80/tcp godocker docker exec -it b2802801c24c /bin/bash # 会发现我们成功进入了docker哦 $ cd /var/www $ ll $ gotest
惊不惊喜~意不意外~
完全意料之中...
执行以下我们编译好的可执行文件看看
此时 只想呵呵 呵呵 哈哈哈哈哈
现在我们来将刚刚的修改 生成新的镜像文件
# 先退出docker exit $ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES b2802801c24c 0a2bad7da9b5 "/bin/bash" 14 minutes ago Up 14 minutes 0.0.0.0:8888->80/tcp godocker
我们通过commit命令将容器转化为镜像
$ docker commit -m "myself docker image" -a "holdno" 0a2bad7da9b5 holdno/centos-go:1.0.0 # 敲下回车后会得到以下结果 证明成功! sha256:554e840711c57bd4d2ede4a29a5c1dff3a711050c421ebfc38090d0f5a358b83 # 重新查看镜像信息 $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE holdno/centos-go 1.0.0 554e840711c5 11 seconds ago 197MB centos 7.2.1511 0a2bad7da9b5 5 months ago 195MB
有没有!生成了新的镜像
打包(save)自己的docker镜像算是做好了(我做啥了?)
下面我们来打包这个镜像
毕竟DBA小哥哥要的只是个包
我们可以使用 save 和 load 方法,前者用来把镜像保存一个tar文件,后台从一个tar文件恢复成一个镜像
$ docker save -o /Users/wangboyan/development/docker/centos-go.v1.0.0.tar 554e840711c5
-o :输出到的文件(注意哦,这个路径一定是已经存在的路径!)恢复(load)
# 删除刚刚打包过的镜像 $ docker rmi 554e840711c5 $ docker load < /Users/wangboyan/development/docker/centos-go.v1.0.0.tar Loading layer [==================================================>] 2.03MB/2.03MB $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE554e840711c5 11 seconds ago 197MB centos 7.2.1511 0a2bad7da9b5 5 months ago 195MB
不知道为什么 REPOSITORY 和 TAG 变成了 none
现在我们来启动刚刚导入的镜像
$ docker run -it 554e840711c5 /bin/bash $ cd /var/www $ ll gotest # 有没有! 刚才cp进来的可执行文件还在!(这不是很正常吗) $ ./gotest hello world $
所以可以直接把 centos-go.v1.0.0.tar 丢给DBA小哥哥了?
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/27264.html
摘要:之所以在本地构建,而没有使用仓库的,是因为,我们的镜像采用了国内阿里云的源,再加上某些很奇妙的网络因素,在中自动构建时,升级总会失败。然而,在本地再次构建成功。 见字如晤。 前段时间,Node.js 官方发布了Node 8.9.3 LTS版本,并且官网首页提示新版本有重要安全更新,Important security releases, please update now! ,然后我立...
摘要:昨天遇到了一个端口转发导致失效的问题,今天记录下当时的排查思路。问题原因是删除容器后没有把转发规则删除。这次排查,用到了几个工具,都是之前的积累,所以排查显得顺畅多了。 昨天遇到了一个端口转发导致VIP失效的问题,今天记录下当时的排查思路。 因为要做升级,所以我删除了dokcer老容器,并启动新容器。之后访问VIP, 也就是LVS中的VIP,发现原先可以访问的站点不能访问了。 以上是故...
摘要:最近在公司搭建一个基于的环境。的内核可以算是半个,依赖一些的容器相关的技术是不支持的,所以需要通过一个虚拟机运行来使用。于是和前端的同学,一起打开文件进行对比,但并没有发现非常可疑的点。果然拿到的文件不再有末尾的乱码。 最近在公司搭建一个基于 Docker 的 PHP 环境。 背景知识 Docker 是一种容器技术,它可以提供一个隔离的环境,让用户的程序运行在一个完全隔离的虚拟的系统...
阅读 2386·2021-09-01 10:41
阅读 1414·2019-08-30 14:12
阅读 468·2019-08-29 12:32
阅读 2828·2019-08-29 12:25
阅读 2918·2019-08-28 18:30
阅读 1678·2019-08-26 11:47
阅读 942·2019-08-26 10:35
阅读 2561·2019-08-23 18:06