目录【阅读时间:约5分钟】

  • 一、Docker简介
  • 二、Docker的安装与配置【CentOS环境】
  • 三、Docker部署Golang web helloworld
  • 四、Docker与虚拟机的区别
  • 五、吐槽

一、Docker简介

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。


观察Docker图标,其实很形象的解释了什么是Docker。在没有使用集装箱的情况下,我们需要考虑不同形状、尺寸的货物怎么安放,货物与货物之间是否能堆叠,这无疑是很繁琐的事情。现在有了集装箱(容器),我们就能将不同的货物放入集装箱之内这样就能以同样的方式来存放货物,实现了标准化。

Docker采用了集装箱原理,我们将程序放入到容器中,实现“一次封装,到处运行”,只要开发环境能跑,在其他任何流行的机器上都能运行。并且将程序丢入到容器中,很好的实现了程序与程序之间的隔离,避免了类似Java开发的程序和.net开发的程序安装在一个服务器上需要很多调试,有时还会产生冲突的情况。

Docker的应用场景:

Web 应用的自动化打包和发布。
自动化测试和持续集成、发布。
在服务型环境中部署和调整数据库或其他的后台应用。
从头编译或者扩展现有的 OpenShift 或 Cloud Foundry 平台来搭建自己的 PaaS 环境。

二、Docker的安装与配置【CentOS环境】

在CentOS环境下,通过如下指令即可安装Docker:

sudo yum install docker

在安装完毕后,可通过如下指令检验安装是否成功:

$ docker --version
Docker version 1.13.1, build 64e9980/1.13.1

检查安装无误后,即可开始下面的基于golang的docker helloworld程序。

三、Docker部署Golang web helloworld

首先创建项目目录和main.go文件:

[henryhzy@localhost 桌面]$ mkdir helloWorldDocker
[henryhzy@localhost 桌面]$ cd helloWorldDocker/
[henryhzy@localhost helloWorldDocker]$ touch main.go
[henryhzy@localhost helloWorldDocker]$ cat main.go
[henryhzy@localhost helloWorldDocker]$ vim main.go

在main.go文件中输入如下内容:

package main
import ("fmt""net/http"
)
func main() {fmt.Println("Hello world!!")http.HandleFunc("/", homePage)http.HandleFunc("/login", login)_ = http.ListenAndServe(":80", nil)
}
func homePage(w http.ResponseWriter, r *http.Request) {fmt.Println("Hello Docker")
}
func login(w http.ResponseWriter, r *http.Request) {fmt.Println("Login Docker")
}

然后创建Dockerfile文件,其内容如下:

FROM golang:latest
WORKDIR $GOPATH/src/helloWorldDocker
COPY . $GOPATH/src/helloWorldDocker
RUN go build .
EXPOSE 8080
ENTRYPOINT ["./helloWorldDocker"]

编译并运行dockers:

docker build -t hellow ./helloWorldDocker
docker run -p 8080:8080 hellow

运行结果:

Hello world!!

四、Docker与虚拟机的区别

五、吐槽

Docker在编译运行时太慢了太慢了,如果系统资源不足&网速慢,估计得等到一百年~
下篇博客应该会介绍快速编译&more golang web~

CentOS Docker安装配置部署Golang web helloworld相关推荐

  1. Docker 安装和部署

    Docker 安装和部署 Docker 简介 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟 ...

  2. Docker安装及部署

    Docker安装及部署 一.Docker安装 二.安装Centos容器并安装Jdk 三.Docker安装部署Redis 四.Docker部署Nginx 五.Docker安装Mysql 持续记录.... ...

  3. Jenkins详细安装配置部署--超详细

    Jenkins详细安装配置部署--超详细 一.什么是CI/CD 二.Gitlab内置持续集成 持续集成(CI) 持续交付(CD) 2.1 Gitlab的CI/CD优势 2.2 Gitlab的CI/CD ...

  4. Docker安装配置Jenkins教程

    Docker安装配置Jenkins教程 前言 准备工作 一.安装Docker 1.安装 2.查看版本信息 二.配置Docker 镜像加速 1.编辑docker配置文件 2.配置镜像地址,编辑文件内容为 ...

  5. Centos 6 安装 配置 oracle11g R2

    Centos 6 安装 配置 oracle11g R2 分享到:0 分类:                          Linux&CentosOracle 1.安装centos6.3_ ...

  6. CentOS 7 安装配置 NFS

    CentOS 7  安装配置 NFS 环境 nps 192.168.1.97 client 192.168.1.98 一.yum 安装 yum -y install nfs-utils rpcbind ...

  7. Linux 实操———CentOS 6 安装配置 Tomcat

    引言 Linux下安装Tomcat. 一.下载.传输与解压 同<Linux 实操---CentOS 6 安装配置 Oracle JDK 1.8>一样,前期都是先在远程机上下载压缩包,然后通 ...

  8. centos 7安装配置python3.7

    centos 7安装配置python3.7(亲测) 默认版本为python2.7 (1)下载python版本 wget https://www.python.org/ftp/python/3.7.3/ ...

  9. Docker 安装配置Crowd

    环景: ubuntu 16.04 docker Version: 20.10.7 crowd3.3.2 问题描述: Docker 安装配置Crowd 解决方案: 1.创建docker-compose. ...

最新文章

  1. centos误删除文件如何恢复
  2. 【编译原理】求一个句型短语、直接短语、句柄(一看就懂~!骗小狗)
  3. python_day6 shutil模块
  4. Aidl调用何时使用本地对象问题
  5. 如何判断自己的WP7 SDK版本
  6. zabbix实现mysql数据库的监控
  7. Android之提示订阅配置订阅需要传新的包 添加结算权限。
  8. 牛客竞赛,ZUST第17届公开赛,摸鱼记(A、DEFGH、J题解,3/7题代码)
  9. java.util.stream.DoubleStream
  10. Invalid maximum heap size: -Xmx
  11. 在windows下如何批量转换pvr,ccz为png或jpg
  12. 测度论与概率论基础(程士宏)学习笔记(一)
  13. 网站域名被墙(被封锁、被屏蔽、被和谐)后最好的解决方法
  14. tomcat 日志拆分
  15. 用Python编程语言来实现阿姆斯特朗数的检查
  16. Python 小白学习之:linux 基础和 python 入门
  17. 计算机word文档快速打数字,word快速提取纯数字
  18. Ceph之RBD恢复的几种方式与原理
  19. 怎么更改电脑桌面文件存放路径
  20. html dom节点源码,HTML DOM HTML DOM 节点 - 闪电教程JSRUN

热门文章

  1. Oracle type (自定义类型的使用)
  2. RPC 笔记(01)— RPC概念、调用流程、RPC 与 Restful API 区别
  3. 数据结构(03)— 数据处理基本操作(数据的查找、新增、删除、修改)
  4. SpringCloud Alibaba微服务实战(一) - 基础环境搭建
  5. pytorchviz visdom 可视化 pytorch
  6. LeetCode简单题之逐步求和得到正数的最小值
  7. 科技公司重新关注2级以上驾驶员辅助
  8. CUDA运行时Runtime(三)
  9. 2021年大数据ZooKeeper(五):ZooKeeper Java API操作
  10. Android 绘制同心圆 (2个圆叠加在一起)