docker 入门到精通
不过多介绍docker的技术原理,而是注重动手练习,熟练的使用docker。
FlyWine
They go low, we go high!
展开
-
Docker教程介绍
Docker教程介绍教程环境准备linux 系统virtualbox 软件安装教程介绍0-安装Vagrant,安装 centos 系统。1-docker 介绍2-docker 安装3-docker 架构和底层技术简介4-什么是Image和container5-Dockerfile文件6-搭建一个私有registry7-深入练习Dockerfile8-容器操作9-资...原创 2019-02-15 18:39:44 · 293 阅读 · 0 评论 -
0-安装Vagrant和使用
Vagrant使用教程Vagrant 是一款软件,可以自动化虚拟机的安装和配置流程。用来管理虚拟机,如 VirtualBox、VMware、AWS等,主要好处是可以提供一个可配置、可移植和复用的软件环境,可以使用shell、chef、puppet等工具部署。所以vagrant不能单独使用,如果你用它来管理自己的开发环境的话,必须在自己的电脑里安装了虚拟机软件,我使用的是 virtualbox。...原创 2019-02-09 13:54:34 · 4920 阅读 · 0 评论 -
1-docker 介绍
1-docker 介绍由PaaS到Container2013年2月,前Gluster的CEO Ben Golub 和 dotCloud 的 CEO Solomon Hykes 坐在一起聊天时,Solomon谈到想把 dotCloud 内部使用的Container容器技术单独拿出来开源,然后围绕这个技术开一家新公司提供技术支持。28岁点Solomon在使用python开发dotCloud的Paa...原创 2019-02-15 18:45:03 · 402 阅读 · 0 评论 -
2-docker 安装
Docker安装从 Ubuntu 14.04 开始,一部分内核模块移到了可选内核模块包 (linux-image-extra-*) ,以减少内核软件包的体积。正常安装的系统应该会包含可选内核模块包,而一些裁剪后的系统可能会将其精简掉。AUFS 内核驱动属于可选内核模块的一部分,作为推荐的 Docker 存储层驱动,一般建议安装可选内核模块包以使用 AUFS。如果系统没有安装可选内核模块的话...原创 2018-04-09 14:04:23 · 491 阅读 · 1 评论 -
3-docker 架构和底层技术简介
3-docker 架构和底层技术简介Docker PlatformDocker 是一个平台。提供了一个开发、打包、运行app的平台把app和底层 infrastructure 隔离开来根据上图我们可以看出 Docker Engine 把上层的 app 应用程序和底层的物理设备或虚拟设备进行了隔离,然后我们在 docker 之上做操作。Docker EngineDocker 是一...原创 2019-02-15 18:48:29 · 584 阅读 · 0 评论 -
4-什么是Image和container
4-什么是Image和container什么是Image?先练习一个例子:docker pull ubuntu:16.04docker image ls # 查看镜像镜像类似于一个系统安装光盘,你可以使用一个安装光盘为多台电脑安装操作系统,同样,你也可以用同一个镜像构建多个运行的 Docker 实体——容器。当你使用同一张安装光盘给多台电脑安装系统之后,这些电脑的系统是完全一样的...原创 2019-02-15 18:49:20 · 1414 阅读 · 0 评论 -
5-Dockerfile文件
5-Dockerfile文件先练习一个例子:创建 Dockerfile 文件FROM ubuntu:14.04LABEL maintainer="vincent <jeffmanword@gmail.com>"RUN apt-get update && apt-get install -y redis-serverEXPOSE 6397ENTRYPOI...原创 2019-02-15 18:50:10 · 411 阅读 · 0 评论 -
6-搭建一个私有registry
6-搭建一个私有registrydocker hub 查找 registrydocker hub registry可以看到部署很简单,只有一条命令。docker run -d -p 5000:5000 --restart always --name registry registry:2部署私有registry找一台linux的服务器并安装好docker在此服务器上部署r...原创 2019-02-15 18:52:35 · 369 阅读 · 0 评论 -
7-深入练习Dockerfile
7-深入练习Dockerfile创建一个json-server 镜像首先创建一个 json-server 文件夹mkdir json-server在json-server文件夹下创建DockerfileFROM node:10.15.0RUN npm install -g json-server构建镜像docker build -t json-server .创...原创 2019-02-15 18:53:49 · 589 阅读 · 0 评论 -
8-容器操作
8-容器操作普通操作进入容器docker exec -it api /bin/bash容器停止与启动docker stop apidocker start api容器重启docker restart api查看容器详细信息docker inspect api查看日志docker logs api容器删除docker stop api ...原创 2019-02-15 18:54:23 · 298 阅读 · 0 评论 -
9-资源限制
9-资源限制了解stress工具stress是一个压力测试工具docker run -it ubuntu:16.04此时会进入ubuntu内,这时我们安装 stress工具apt-get update &amp;&amp; apt-get install -y stress查看helpstress --helpUsage: stress [OPTION [ARG]] ......原创 2019-02-16 01:45:37 · 953 阅读 · 0 评论 -
10-Docker 网络
10-Docker 网络基础网络概念数据传输通过数据包两台笔记本之间通信是通过数据包通信的。想知道数据包是怎么打包的呢,就先要知道网络分层的概念。网络分层目前有两种网络分层的模型。ISO/OSI 分层,也就是 7 层模型。TCP/IP 分层,也就是 5 层模型。TCP/IP 是目前最流行的分层模型。TCP/IP模型最底层物理层 也就是 传输介质,像 网线,光纤…...原创 2019-02-16 01:45:52 · 307 阅读 · 0 评论 -
11-Docker Bridge详解
11-Docker Bridge详解容器之间是如何通信的?操作前删除test2的容器。查看当前机器上docker的网络docker network lsNETWORK ID NAME DRIVER SCOPE056d0ece100f bridge bridge ...原创 2019-02-16 01:46:06 · 648 阅读 · 0 评论 -
12-容器之间link
12-容器之间link这篇主要讲 容器之间如何 link。需要准备的是,创建两个容器 test1 和 test2 通过 busybox。在之前的课程中已经创建的只需要重新启动即可。什么情况下需要link例如有一个容器是 web 服务器,并且跑在一个docker容器内,这个web程序需要访问后台数据库,一般来说我们会把数据库也运行在一个docker的容器内,那么此时就需要两个容器进行 ...原创 2019-02-16 01:46:47 · 375 阅读 · 0 评论 -
13-容器的端口映射
13-容器的端口映射部署一个简单web nginx容器docker run -d --name web nginxnginx 默认的端口是 80 端口,此时我们是没有办法访问的。好的,通过前面的学习我们已经知道,这个 web 容器四连接到 bridge 网桥上的,那我们查看一下。docker network inspect bridge"Containers": { "d6...原创 2019-02-16 01:46:59 · 1127 阅读 · 0 评论 -
14-容器网络之host和none
14-容器网络之host和none在之前的小节,我们有看到过 host 和 none。通过 docker network ls 查看。none 网络删除 test1 容器docker stop test1 &amp;&amp; docker rm test1创建 test1 容器并连接到none网络docker run -d --name test1 --network...原创 2019-02-16 01:47:09 · 430 阅读 · 0 评论 -
15-多容器复杂应用的部署
15-多容器复杂应用的部署此节主要是通过部署一个复杂的应用场景,进而练习容器的网络相关知识。创建一个flask-web应用创建一个 flask-web 文件夹mkdir flask-web在此文件夹内创建 app.py 文件cd flask-webtouch app.py编写一个简单的 web 程序import osimport socketimport redi...原创 2019-02-16 01:47:22 · 616 阅读 · 0 评论 -
16-多机器通信
16-多机器通信回顾上节课的思考题。flask-redis 想访问 redis,该如何通信?创建另外一台linux虚拟机直接拷贝Vagrantfile文件创建一个 centos 虚拟机我们创建一个centos7-2文件夹,然后创建虚拟机vagrant up创建的过程中提示选择网络接口,如果你是wifi选择类似wlp5s0的选项,如果是网线选择类似eth0。具体选择哪个,可以通...原创 2019-02-16 01:47:35 · 460 阅读 · 0 评论 -
17-Docker的数据持久化介绍
17-Docker的数据持久化介绍回顾容器与镜像容器是在镜像之上创建的一层运行时层,这一层是可以读写的,我们能够在容器内添加数据,读取数据。也就是说我们在创建容器的时候,我们能够在容器内创建文件,安装软件等等,但是如果我们把这个容器停止并删除了,那在这个容器内的所有操作都会没有,镜像是不会发生变化的,除非我们重新提交了一个镜像。持久化的产生假如我们想创建一个数据库容器,比如mysql容...原创 2019-02-16 01:47:54 · 292 阅读 · 0 评论 -
18-数据持久化-Data Volume
18-数据持久化-Data VolumeData Volume 使用场景。一般来讲有些容器自己会产生一些数据,我们不想数据随着容器的销毁而销毁,我们想保存数据,正常一般用在数据库,比如我们想保存数据库中的数据,这个时候我们就会使用 Data Volume。创建数据库容器我们通过创建一个 mysql 的数据库来看看如何数据持久化。我们先查看一下 mysql 的安装方式,通过 docker h...原创 2019-02-16 01:48:04 · 374 阅读 · 0 评论 -
19-数据持久化-Bind Mounting
19-数据持久化-Bind MountingBind Mounting 与 Data Volume区别Data Volume 需要在 Dockerfile 内声明需要创建的 volume 目录。Bind Mounting 则不需要在 Dockerfile 声明 volume,只需要在创建容器的时候,也就是 run 的时候声明即可。如:docker run -v /home/aaa:/ro...原创 2019-02-16 01:48:35 · 481 阅读 · 0 评论