Docker 基础教程

Docker介绍

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

Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

Docker 应用场景

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

Docker和虚拟机的区别

传统的虚拟化是站在硬件物理资源的基础上,虚拟出多个OS,然后在OS的基础上构建相对独立的程序运行环境,这就浪费了太多的资源。而Docker则是在OS的基础上进行虚拟,共享一个OS,所以资源占用,性能消耗相比传统虚拟化都有很大的优势。

ubuntu 安装 Docker

Docker 要求 Ubuntu 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的 Ubuntu 版本是否支持 Docker。
通过 uname -r 命令查看你当前的内核版本

  1. 获取最新的Docker安装包
      wget -qO- https://get.docker.com/ | sh

当要以非root用户可以直接运行docker时,需要执行 sudo usermod -aG docker runoob 命令,然后重新登陆.

  1. 启动docker 后台服务
sudo service docker start

  1. 测试运行hello-world
docker run hello-world

Docker镜像

在Docker中,一切都基于镜像的,镜像的本质是一个文件系统及其参数配置的组合。

通常来说,一个镜像对应一个应用程序。例如:nginx镜像,mysql镜像等。

当运行容器时,使用的镜像如果在本地中不存在,docker 就会自动从 docker 镜像仓库中下载,默认是从 Docker Hub 公共镜像源下载。

查看镜像列表

我们可以使用 docker images 来列出本地主机上的镜像。

各个选项说明:

  1. REPOSITORY:表示镜像的仓库源
  2. TAG:镜像的标签
  3. IMAGE ID:镜像ID
  4. CREATED:镜像创建时间
  5. SIZE:镜像大小
    同一仓库源可以有多个 TAG,代表这个仓库源的不同个版本,如ubuntu仓库源里,有15.10、14.04等多个不同的版本,我们使用 REPOSITORY:TAG 来定义不同的镜像。

获取新的镜像

当我们在本地主机上使用一个不存在的镜像时 Docker 就会自动下载这个镜像。如果我们想预先下载这个镜像,我们可以使用 docker pull 命令来下载它。

查找镜像

我们可以从 Docker Hub 网站来搜索镜像,Docker Hub 网址为:
https://hub.docker.com/
我们也可以使用 docker search 命令来搜索镜像。比如我们需要一个nginx的镜像时。可以通过 docker search 命令搜索 nginx 来寻找适合我们的镜像。

查找好后用docker pull 来下载镜像,下载完后就可以使用了。

创建镜像

当我们从docker镜像仓库中下载的镜像不能满足我们的需求时,我们可以通过以下两种方式对镜像进行更改。

  1. 从已经创建的容器中更新镜像,并且提交这个镜像。

  2. 使用 Dockerfile 指令来创建一个新的镜像

更新镜像

更新镜像是对容器的打包,所以我们先创建一个容器。

docker run -t -i nginx /bin/bash

在运行的容器内使用 apt-get update 命令进行更新。

完成此操作后你可以做一些你需要的操作,比如换源什么的,然后输入 exit 退出容器。

最后通过命令 docker commit来提交容器副本。

docker commit -m="new nginx" -a="xxx" 容器ID 新的镜像名

  • -m:提交的描述信息
  • -a:指定镜像作者

其他参数可以查看 docker commit --help

构建镜像

我们使用命令 docker build , 从零开始来创建一个新的镜像。为此,我们需要创建一个 Dockerfile 文件,其中包含一组指令来告诉 Docker 如何构建我们的镜像。

每一个指令都会在镜像上创建一个新的层,每一个指令的前缀都必须是大写的。

FROM,指定使用哪个镜像源

RUN 指令告诉docker 在镜像内执行命令

然后,我们使用 Dockerfile 文件,通过 docker build 命令来构建一个镜像。

docker build -t 目标镜像名  Dockerfile 文件所在目录,可以指定Dockerfile 的绝对路径

Docker容器

运行容器

docker run -d nginx

常用参数:

  • -d :后台运行
  • -p :端口映射
  • –name : 容器名
  • –network字符串将容器连接到网络(默认为“默认”)

查看容器

使用 docker ps 来查看我们正在运行的容器

常用选项:

  • -a : 显示所有容器

停止容器

docker stop nginx

删除容器

docker rm nginx

删除容器时,容器必须是停止状态

Docker容器其他操作

配置网段

Docker默认网段是172.17.0.0/16,我们需要用其他网段时可以自己建一个网段

docker network  create -d bridge --subnet 192.168.1.0/24 -o com.docker.network.bridge.name=docker1 test

容器里换源

这个如果你要在容器内做一些下载操作的活换源就很有意义了,反正我是受不了网速太慢。
下面是步骤:
1.首先外边下载一个源,然后挂载进去。
2.docker run --name aptnginx -d -v /opt/data:/opt nginx
3.容器里边装apt-get install -y gnupg2 用来解密
4.将opt下文件mv进 /etc.apt sources.list

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值