Docker入门教程

在开始运行Docker程序时,我们需要理解Docker的组成,Docker由三部分组成:

  • 仓库(repository):仓库类似于Git中的仓库,Git仓库用于存放用户代码,而Docker仓库则用来存放Docker镜像。由于Docker是国外的东东,访问Docker仓库(Docker Hub)非常慢,因此国内IT巨头搭建了Docker国内镜像,如下:

    • 阿里云Docker仓库

    • 网易云Docker仓库

  • 镜像(image):镜像是容器的基石,容器基于镜像启动,镜像就像是容器的源代码,保存了用于容器启动的各种条件。

  • 容器(container):容器是docker的执行单元,容器是镜像的实例。

仓库配置

由于Docker是国外的,Docker默认将访问国外的Docker Hub仓库;因为国内访问Docker Hub仓库的速度太慢了,于是国内IT巨头公司建立了镜像仓库加速器,下面将使用阿里云的进行加速服务。

(1)登录到阿里云,如下图:

Docker Hello World

(2)进入到控制台,找到弹性计算,点击“容器镜像服务”。如下图:

Docker Hello World

(3)点击“镜像加速器”,此时就有怎样去配置加速器的方法了。如下图:

Docker Hello World

(4)进入到 /etc/docker 目录,创建 daemon.json 文件,且添加如下配置:

{
    "registry-mirrors": ["https://hotw1jil.mirror.aliyuncs.com"]
}

(5)重新加载配置文件,如下:

[root@localhost /]# sudo systemctl daemon-reload

(6)重启docker服务,如下:

[root@localhost /]# sudo systemctl restart docker

到这里仓库就配置好了。

运行Hello World

注意,如果你是第一次运行Hello World,Docker会先到本地查找image镜像,如果镜像在本地不存在,Docker会到远程仓库去下载image镜像。然后运行镜像,如下:

[root@localhost /]# docker run hello-world
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/
For more examples and ideas, visit:
 https://docs.docker.com/get-started/

使用 docker images 查看本地仓库有哪些镜像,如下:

Docker Hello World

本地仓库有三个镜像,分别为“redis”、“mysql”、“hello-world”。

入门知识

CentOS7安装Docker - 在 CentOS7 中安装 Docker

Docker Hello World - 演示使用 docker pull 从 Docker hub 上面拉取 Hello world 镜像,然后使用 docker run 运行镜像

Docker数据卷容器 - 介绍在 docker run 命令中使用“-v”和“--volumes-from”参数指定容器卷

使用Dockerfile创建数据卷 - 介绍在 Dockerfile 文件中使用 VOLUME 命令创建数据卷

Docker容器数据卷 - 怎样通过命令和Dockerfile文件挂载数据卷,实现Docker容器之间数据共享

Docker常用命令

Docker命令之帮助命令 - 介绍Docker的帮助命令 docker info、docker help 和 docker version

Docker images命令 - 查看当前Docker上面存在的所有镜像列表

Docker rmi命令 - 删除指定的镜像

Docker tag命令 - 根据已有的镜像,新建一个TAG

Docker build命令 - 根据 Dockerfile 构建镜像

Docker history命令 - 查看指定镜像的历史信息

Docker save命令 - 将镜像使用 tag.gz 格式保存到宿主主机

Docker load命令 - 将保存在宿主主机的 tag.gz 文件导入到 Docker 中

Docker import命令 - 导入镜像

Docker run命令 - 根据指定的 Docker 镜像运行一个容器

Docker pull命令 - 从 Docker Hub 中下载一个镜像到本地 Docker

Docker search命令 - 从 Docker Hub 搜索镜像

Docker rm命令 - 删除指定的容器

Docker start命令 - 启动一个或多个已经停止的容器

Docker restart命令 - 重启一个或多个容器

Docker stop命令 - 停止一个或多个容器

Docker kill命令 - 强制停止一个或多个容器

Docker exec命令 - 在宿主主机发送一条命令到容器内部进行执行,然后返回结果给宿主主机

Dockerfile入门

Dockerfile之FROM - 指定 Dockerfile 的基础镜像,即自己的镜像继承自哪个镜像

Dockerfile之MAINTAINER - 给 Dockerfile 指定作者信息和邮箱地址

Dockerfile之ENV - 设置环境变量

Dockerfile之RUN - 运行一条指令

Dockerfile之ADD - 添加一个文件到镜像内,如果镜像时压缩文件将自动解压

Dockerfile之COPY - 拷贝文件到镜像内

Dockerfile之EXPOSE - 暴露某个端口,供宿主主机通过 -p 或 -P 进行映射,然后即可访问Docker服务

Dockerfile之WORKDIR - 设置当前工作目录

Dockerfile之VOLUME - 指令可以指定一个或多个目录作为容器的数据卷

Dockerfile之CMD - 设置容器启动时执行的操作

Dockerfile之ENTRYPOINT - 设置容器启动时执行的操作

Dockerfile之ONBUILD - 只有当以当前镜像为基础镜像,去构建下一级镜像的时候才会被执行

Dockerfile实例

Dockerfile实例Hello World

Dockerfile实例自定义CentOS - 自定义CentOS镜像

Dockerfile实例自定义TOMCAT - 自定义 Tomcat

Dockerfile的CMD和ENTRYPOINT实例

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
什么是Docker Docker 最初是dotCloud 公司创始人Solomon Hykes 在法国期间发起的一个公司内部项目, 它是基于dotCloud 公司多年云服务技术的一次革新,并于2013 年3 月以Apache 2.0 授权 协议开源,主要项目代码在GitHub 上进行维护。Docker 项目后来还加入了Linux 基金会, 并成立推动开放容器联盟(OCI)。 Docker 自开源后受到广泛的关注和讨论,至今其GitHub 项目已经超过4 万6 千个星标和一 万多个fork。甚至由于Docker 项目的火爆,在2013 年底,dotCloud 公司决定改名为 DockerDocker 最初是在Ubuntu 12.04 上开发实现的;Red Hat 则从RHEL 6.5 开始对 Docker 进行支持;Google 也在其PaaS 产品中广泛应用DockerDocker 使用Google 公司推出的Go 语言进行开发实现,基于Linux 内核的 cgroup,namespace,以及AUFS 类的Union FS 等技术,对进程进行封装隔离,属于操作 系统层面的虚拟化技术。由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容 器。最初实现是基于LXC,从0.7 版本以后开始去除LXC,转而使用自行开发的 libcontainer,从1.11 开始,则进一步演进为使用runC 和containerd。 Docker 在容器的基础上,进行了进一步的封装,从文件系统、网络互联到进程隔离等等,极 大的简化了容器的创建和维护。使得Docker 技术比虚拟机技术更为轻便、快捷。 下面的图片比较了Docker 和传统虚拟化方式的不同之处。传统虚拟机技术是虚拟出一套硬件 后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程;而容器内的应用进程 直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟。因此容器要比 传统虚拟机更为轻便。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值