Docker 是一个开源的容器引擎,用于创建、管理和编排容器,可以轻松为任何应用创建一个轻量级、可移植、自给自足的容器。本步骤将在linux上部署一个Docker服务,并配置DockerHub的镜像加速器。

安装软件包

在linux命令行输入如下命令,这些命令用来安装一些软件包。

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

添加软件仓库

添加Docker CE的软件源信息,如下命令,从指定url添加软件仓库。

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

安装docker

安装Docker CE,dockerCE为docker的社区版本。

yum makecache fast &&
yum -y install docker-ce

启动Docker服务

启动Docker服务。

systemctl start docker

配置镜像加速器

配置DockerHub镜像加速器。

可参考:Docker 镜像加速 | 菜鸟教程

tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://registry.docker-cn.com"]
}
EOF

重启Docker服务

重启Docker服务。

systemctl restart docker

准备应用代码和Dockerfile

本步骤操作将在工作空间下创建一个基于Golang的HelloWorld代码文

和一个用来构建运行Hello代码所需环境镜像的Dockerfile文件。

Dcokerfile用来存放指令,运行可构建镜像。

1. 创建工作空间。

mkdir -p /tmp/demo && cd /tmp/demo

2. 在工作空间下创建HelloWorld代码文件,用来在容器环境中监听HTTP服务,输出HelloWorld字符串。

cat > /tmp/demo/main.go << EOF
package mainimport ("fmt""net/http"
)func main() {http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {fmt.Fprintf(w, "Hello! World\n")})fmt.Println("start to serve...")http.ListenAndServe(":80", nil)
}
EOF

3. 在工作空间下创建Dockerfile文件。

cat > /tmp/demo/Dockerfile << EOF
FROM golang:1.12-alpine# change current working dir
WORKDIR /go/src/app# copy main.go into /go/src/app
COPY . .# go build and install the app
RUN go install -v ./...# run the app by default
CMD ["app"]
EOF

本地构建镜像并运行镜像

镜像不仅可以从仓库获取还可以本地构建

1. 使用docker build命令构建镜像。

docker build . -t demo:v1

命令运行结果如下所示:

说明:

  • 参数.表示指定当前路径作为构建上下文,即Dockerfile所在的本地路径。

  • 参数-t demo:v1指定镜像名称和标签。

运行镜像

使用docker run命令运行镜像。

docker run -d -p 8000:80 demo:v1

命令运行结果如下所示:

说明:

  • 参数-d设置容器运行模式为后台运行。

  • 参数-p 8000:80将容器内部使用的网络端口映射到主机上,其中8000为主机端口,80为容器内部使用端口。

使用curl工具访问容器中的HelloWorld服务。(类似于从浏览器访问地址)

curl localhost:8000

命令运行结果如下所示:

删除容器

使用docker rm命令删除容器。

docker rm -f $(docker ps -a | grep "demo:v1" | awk '{print $1}')

命令运行结果如下所示:

搭建第一个Docker相关推荐

  1. windows docker 设置镜像源_Windows10下搭建第一个Docker应用(Demo)

    1. 打开Windows虚拟化,需要Windows10Pro以上版本,部分机器还需设置BIOS打开 2. 安装Windows10 Hyper-v 3. 安装Docker Desktop,很简单,两步搞 ...

  2. 搭建Harbor企业级docker仓库

    from: https://www.cnblogs.com/pangguoping/p/7650014.html 搭建Harbor企业级docker仓库 一.Harbor简介 1.Harbor介绍 H ...

  3. 一个springboot能支持多少并发_吃透这篇,你也能搭建出一个高并发和高性能的系统...

    " 什么是高并发?高并发是互联网分布式系统架构的性能指标之一,它通常是指单位时间内系统能够同时处理的请求数,简单点说,就是 QPS(Queries Per Second). 那么我们在谈论高 ...

  4. php ssc 源码_吃透这篇,你也能搭建出一个高并发和高性能的系统

    什么是高并发?高并发是互联网分布式系统架构的性能指标之一,它通常是指单位时间内系统能够同时处理的请求数,简单点说,就是 QPS(Queries Per Second). 那么我们在谈论高并发的时候,究 ...

  5. 如何push一个docker镜像到DockerHub上

    如何push一个docker镜像到DockerHub上 2018.01.03 11:31:39字数 139阅读 202 有时候想要保存自己的docker镜像,又不想自己搭建docker registr ...

  6. 动手实现一个docker引擎-1-从内核到docker的三驾马车

    学习自<自己动手写Docker> 作者:陈显鹭(花名:遥鹭)-阿里云高级研发工程师等 京东购买链接:https://item.jd.com/10033552355433.html 其他资料 ...

  7. 商业级4G代理搭建指南【搭建篇之Docker版】

    时间过得真快,距离这个系列的上一篇文章<商业级4G代理搭建指南[准备篇]>发布的时间已经过了两个星期了,上个星期由于各种琐事缠身,周二开始就没空写文章了,所以就咕咕咕了. 那么在准备篇中, ...

  8. 为了实现CI/CD,先来定制一个Docker镜像【实战精华篇】

    背景 计划把手头的项目逐步改造为基于Docker容器的方式发布,同时,项目中已经采用了云厂商提供的CI/CD自动化发布流水线.因此,为配合CI/CD操作,需要先针对项目构建一些发布的脚本,通过脚本来自 ...

  9. 第一个Docker应用栈 HelloWorld

    Helloworld Docker应用栈 第一个Docker应用栈 HelloWorld HelloWorld应用栈的结构 搭建过程 1.获取应用栈各节点所需镜像 2.容器间互联及容器启动顺序 3.启 ...

最新文章

  1. 小马智行获2.67亿美元新融资,估值超53亿美元
  2. NLP命名实体识别(NER)代码实践
  3. .NET程序性能的基本要领
  4. LeetCode Evaluate Division(并查集)
  5. 与客户有关的业务数据表名,及删除客户主数据方法
  6. AutoMapper在MVC中的运用小结
  7. 按照RFC3984协议实现H264视频流媒体 RTSP H264
  8. Hive精华问答 | Hive和传统数据库有什么不同?
  9. MVC 特性使用总结
  10. 用 Python 描述 Cookie 和 Session
  11. 小程序解决方案 Westore - 组件、纯组件、插件开发
  12. 论文笔记-深度估计(4) Semi-Supervised Deep Learning for Monocular Depth Map Prediction
  13. Wifi Signal Strength for Mac(实用的WiFi信号监测工具)
  14. 2009年考研数学一解析pdf
  15. 【叮咚买菜】叮咚抢菜使用教程
  16. linux 设备树 otg,linux下充电IC OTG设备供电控制
  17. 记录:页面锚定 点击a标签进行锚定到指定的ID
  18. 单片机c语言交通灯源程序,51单片机用C语言实现交通灯_红绿灯_源程序
  19. 2019链塔大会暨亚洲区块链技术与应用论坛盛大召开
  20. 工程博士与在职博士的区别

热门文章

  1. 诺基亚困境,力掐苹果?
  2. android 课堂讨论内容,Android端课堂交互应用研究与实现
  3. linux 内核udp编程,Linux下网络编程实现UDP,还有大量实例
  4. ghost mysql 乱码,ghost安装之mysql
  5. mysql s.`name`_MySQL的基础操作命令
  6. HALCON 21.11:深度学习笔记---有监督训练(6)
  7. HALCON 20.11:学习笔记---一维测量(Measuring)
  8. Python+OpenCV:图像二进制鲁棒独立基本特征(BRIEF, Binary Robust Independent Elementary Features)
  9. 纺织名词术语(针织品部分)---疵点
  10. 多分辨率下的彩色图像分割方法