专栏首页GopherCoder『暴力學習 docker ,后附视频版』

『暴力學習 docker ,后附视频版』

docker-png.png

各位好,我是谢伟,是一名程序员。

程序员需要持续不断的学习,这一点已经是成为共识.

我也在不斷的學習新的學習方式,不斷的更新自己的學習方式. 於是有了下文, 稱之爲暴力學習方法.

其實這些也不是我自己原創的,我只是結合自己的學習方式和一些接觸的厲害的人之後總結出來的.

下面的方法,不適合精深某一領域,但是非常適合從不懂到懂操作的階段. 所以称之爲 暴力學習. 但往往就是這麼一次的入門, 就成了...

阻擋你入門的, 往往是那些原理.

注意: 上手是一切的开始, 是一切的可能性的开始

下面的這些方法有幾點需要說明:

  • 忽略絕大多數細節
  • 了解這門技術的最小知識集
  • 實踐, 實踐, 再實踐
  • 了解和精進原理

即:把對原理的吸收放到已經能操作這麼技術之後再進行, 這樣的好處是: 你知道你想了解什麼...

下面的演示實例即: 暴力學習 docker.

1. Docker

一句話說明: Docker 是一種容器技術, 允許開發者把程序打包進容器, 之後可以跨平臺使用.

在雲計算 , 微服務領域有着廣泛的使用. 而且扮演着越來越重要的角色.

2. 暴力学习法 docker

  • 忽略细节
  • 最小知识集
  • 实践

2.1 最小集知识

  • 使用场景
    • 弹性云服务
    • 环境一致
    • 组件微服务架构
  • 基本概念
    • 镜像:image: 分层 72
    • 容器:container
    • 仓库:repository
    • Docker registry: 提供集中存储、分发镜像的服务
  • 服务和非服务
  • .dockerignore 忽略文件

使用場景

  • 一個容器提供一個服務, 多個容器提供多個服務, 容器的停止運行即減少服務, 容器的啓動運行即增加服務, 完成彈性暈服務.
  • 開發者將程序放入容器中, 可以跨平臺使用. 執行 docker 命令即可使用. 環境一致性.
  • 容器啓動提供服務, 服務見相互交互, 完成微服務架構組織.

基本概念

image 鏡像: 即一些文件, 可以理解爲一個比較小的系統的文件系統

container容器: 即一個進程, 即鏡像啓動, 提供相應服務, 開啓進程

registry 倉庫: 鏡像的存儲和分發

docker 的操作即在執行這三者.

安裝

根據自己電腦的操作系統選擇對應的版本, 其中不建議使用 Windows 系統. Docker 在Linux 系統下使用更佳.

加速器

之所以需要使用加速器是因爲Docker 是國外的產品, 默認提供的鏡像倉庫地址是在國外, 所以拉取或者推送鏡像存在一個問題: 慢. 所以使用一些國內的加速器, 拉取鏡像更 快.

2.2 常用命令

  • image
  • container
  • registry
  • version
  • info

之前說過 docker 的操作基本上是在操作: 鏡像, 容器, 倉庫

命令分這麼幾個類別:

  • 系統
docker info
docker version
  • 镜像
docker images
docker rmi
docker save
docker load
docker import
docker export
  • 容器
docker run
docker stop/start/create/stats
docker ps
docker kill
  • 仓库
docker pull
docker push
  • 运维
docker exec
docker attach
docker inspect

2.3 Dockerfile

docker 核心是制作鏡像,啓動容器,提供服務.

那嘸如何制作鏡像, 啓動容器, 提供服務呢? 核心又是編寫 Dockerfile 文件.

執行 docker build 成爲鏡像, docker run 成爲容器. 啓動容器後即可以提供服務.

  • FROM: scratch
  • MAINTAINER
  • RUN
  • COPY:通配符
  • ADD:更高级的COPY:自动解压缩
  • CMD:容器启动后的命令执行
  • ENTRYPOINT:入口点,容器启动后的命令执行, 方便添加参数
  • VOLUME 挂载数据卷
  • WORKDIR 指定工作目录
  • EXPOSE 暴露端口
  • USER 指定当前用户
  • HEALTHCHECK 容器健康检查

熟悉shell 命令的, 可以很容易的理解這些命令的含義, 無非是出品docker 的這家公司制定這麼一套規則,我們學會這個規則,完成文件的拷貝,或者執行些命令, 就可以構建鏡像.

實踐

核心是編寫Dockerfile , 會寫Dockerfile , 就會制作鏡像, 就會啓動容器. 就能入門docker.

3.1 設置加速器實例

訪問:

https://www.daocloud.io/mirror#accelerator-doc

https://www.daocloud.io/mirror#accelerator-doc

3.2 拉取鏡像, 啓動服務實例

docker run -d -p 9200:9200 elasticsearch

訪問: localhost:9200

docker pull ubuntu
docker run -it ubuntu sh
#

即: 容器內具備ubuntu 的基礎功能

#!/usr/bin/env bash
echo "hello world"
  • 編寫Dockerfile 文件
docker build -t my_hello_world:0.0.1 .

啓動容器:

docker run my_hello_world

輸出: hello world

3.4 Dockerfile 執行提供 API 服務的鏡像

制作步驟: 使用 golang 編寫一個簡單的API 服務

FROM ubuntu
MAINTAINER XieWei
EXPOSE 8080
RUN mkdir -p /usr/src/app
COPY . /usr/src/app
WORKDIR /usr/src/app
CMD ls
ENTRYPOINT ["/bin/bash", "-c", "/usr/src/app/main"]

即: 以ubuntu 爲基礎鏡像, 開放端口 8080, 創建目錄 /usr/src/app , 拷貝本地Dockerfile 所在目錄的所有文件至該文件夾下.

切換至該文件夾, 入口執行 /usr/src/app/main

即: 啓動容器會執行: /usr/src/app/main

  • 制作鏡像
docker build -t my_api:0.0.1 .
  • 啓動容器, 映射端口 8080
docker run -d -p 8080:8080 my_api:0.0.1

訪問: localhost:8080/user/xiewei

輸出: hello xiewei

视频地址: docker 学习

视频不太清晰,看百度网盘分享的视频吧.

链接: https://pan.baidu.com/s/1afYadQy1C7ym0AgNx7aXNg 密码: 5rcr

http://www.bilibili.com/video/av22701812

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 专栏:010:SQL VS No SQL

    谢伟
  • 『项目结构与框架:Go』

    谢伟
  • 解构--采铜 | 探寻致用心理学:思想自传解构--采铜 | 探寻致用心理学:思想自传

    谢伟
  • 我的 Docker 卡死了,怎么办?在线等

    最近升级了一版 kubelet,修复因 kubelet 删除 Pod 慢导致平台删除集群超时的问题。在灰度 redis 隔离集群的时候,发现升级 kubelet...

    米开朗基杨
  • Centos7上安装docker 转

    Docker从1.13版本之后采用时间线的方式作为版本号,分为社区版CE和企业版EE。

    双面人
  • 谈一谈|在win10家庭版上用虚拟机安装docker

    Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0协议开源。

    算法与编程之美
  • docker 入门与安装

    Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括...

    付威
  • docker离线部署 - jumpserver

    2019年7月17日 ⋅ 浏览量: 4    ...

    以谁为师
  • Centos7使用docker搭建Sentry

      Sentry 是一款基于 Django实现的错误日志收集和聚合的平台,它是 Python 实现的,但是其日志监控功能却不局限于python,对诸如 Node...

    用户3773636
  • Centos docker卸载

    问天丶天问

扫码关注云+社区

领取腾讯云代金券