Docker 学习(一)入门篇

本贴最后更新于 1631 天前,其中的信息可能已经事过境迁

什么是 Docker

Docker 是基于 Go 语言实现的开源容器项目。利用操作系统本身已有的机制和特性,可以实现远超传统虚拟机的轻量级虚拟化。它是内核级的虚拟化。期望达到使项目运行环境“一次封装,到处运行的目的”。
利用 docker 创建的运行环境叫做 docker 容器,容器是通过 docker 镜像创建的,docker 镜像文件可以放在私有仓库中也可以放在共有仓库中。最大的公有仓库是官方 Docker Hub
可以将 Docker 容器理解为一种轻量级的沙盒,每个容器内运行着一个应用,不同容器之间相互隔离,容器之间也可以通过网络互相通信。容器的创建和停止十分迅速,几乎和原生应用一样。

为什么要是用 Docker

在云时代,开发者创建的应用必须要能很方便地在网络上部署,如果能够不受服务器的操作系统的影响和服务器是否安装应用所需环境,让应用在“任何时间任何地点”都是可快速部署的,这正是 Docker 所能够提供的最大优势 。
举个简单的例子,假设用户试图基于最常见的 LAMP (Linux+Apache+MySQL+PHP )组合来构建网站 。 按照传统的做法,首先需要安装 Apache 、 MySQL 和 PHP 以及它们各自运 行所依赖的环境;之后分别对它们进行配置(包括创建合适的用户、配置参数等);一旦需要服务器迁移(例如从阿里云迁移到其他云),往往需要对每个应用都进行重新部署和调试。极大地降低了用户的工作效率。究其根源,是这些应用直接运行在底层操作系统上,无法保证同一份应用在不同的环境中行为一致。而 Docker 提供了一种更为聪明的方式,通过容器来打包应用、解藕应用和运行平台 。这意味着迁移的时候,只需要在新的服务器上启动需要的容器就可以了,无论新旧服务器是否是同一类型的平台 。

Docker 的安装

docker 官方文档
这个是 docker 官方的安装文档,这个连接是 centos 版本的,可以在侧边栏选择其他的版本。然后跟着文档一步一步来就行了,这里以 centos 为例。
image.png

  1. 先卸载旧版本
$ sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

  1. 添加 repo
$ sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

中间的 optional(可选的)直接跳过。
3. 安装 docker-ce

$ sudo yum install docker-ce docker-ce-cli containerd.io

这个步骤,我在安装的时候总是超时,安装不上,最后在网上找到的解决方法。根据下面这个链接把镜像站换成国内就行啦。https://mirror.tuna.tsinghua.edu.cn/help/docker-ce/
4. 启动 docker

$ sudo systemctl start docker

  1. 验证 docker 是否安装成功
$ sudo docker -v

Hello World

Docker 安装成功后,按照以下代码运行,就会打印出 Hello from Docker!,具体是怎么一回事,我们以后会讲。

docker pull hello-world
docker run hello-world

image.png

ps: 我在执行 docker pull hello-world 命令时,竟然报错了!

image.png

好像还是因为镜像问题。按照这篇博客解决了问题。具体就是查看 /etc/docker/ 下有没有 daemon.json,若没有就新建一个,然后#vim/etc/docker/daemon.json,添加下面的内容。

{  
"registry-mirrors": ["https://registry.docker-cn.com","http://hub-mirror.c.163.com"]  
}

重启 docker 服务

restart docker.service

  • Docker

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的操作系统上。容器完全使用沙箱机制,几乎没有性能开销,可以很容易地在机器和数据中心中运行。

    476 引用 • 899 回帖 • 3 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...