跳至主要內容

四、CentOS Docker 安装

安图新大约 5 分钟云原生Docker

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

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

Docker 使用完全使用沙箱机制,两个容器之间不会有任何接口 (这个有点像 iPhone 的 app ) ,更重要的是容器性能开销极低

学习前提

在继续阅读之前,我们希望你对 Linux 有一些基本的了解,包括

1、 会使用 Linux 常用的命令;
2、 知道大部分的 Linux 常识,比如终端serviceip用户等;
3、 熟练使用 Ubuntu 或者 Centos 或者 MacOS 种的一种昂;

如果你对这些知识还是一知半解,可以访问我们的 Linux 基础教程 先进行一些简单的了解

Docker 的应用场景

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

Docker 的优点

1、 简化程序;

Docker 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,便可以实现虚拟化
Docker 改变了虚拟化的方式,使开发者可以直接将自己的成果放入 Docker 中进行管理
方便快捷已经是 Docker 的最大优势,过去需要用数天乃至数周的 任务,在Docker容器的处理下,只需要数秒就能完成

2、 解决运维配置噩梦;

在没有 Docker 之前,每一台机器,每一个要用到的依赖,几乎都要重新配置一遍
比如新增一台 MySQL 数据库,就要从头开始配置所有环境
有了 Docker 之后,只需要从仓库里把之前的 MySQL 镜像拉出来,直接使用

3、 节省开支;

使用 Docker ,可以在一台电脑上部署多个服务,多个应用,从而充分榨干每一滴性能
同时,又不用担心多个应用之间出现相互访问的情况

相关链接

Docker 官网: http://www.docker.comopen in new window

Github Docker 源码: https://github.com/docker/dockeropen in new window

Docker 可以运行在 CentOS 上,但对 CentOS 系统版本和内核版本有一定的要求

1、 CentOS 的版本必须在 6.5+,且必须是64位,然后必须是发行版本;
2、 如果是DockerCE,则要求系统版本是7.0+
3、 如果是 CentOS7,则要求系统内核版本为 3.10 以上;
4、 如果是 CentOS6.5 或更高的版本的 CentOS 上,则要求系统内核版本为 2.6.32-431 或者更高版本;

查看 CentOS 系统内核版本

如果你不确定自己的 CentOS 的内核版本是多少,可以使用 uname -r 命令查看一下

[root@www.hotmindshare.com ~]# uname -r
310.0-327.el7.x86_64

CentOS 安装 Docker

目前最快速的安装 Docker 的方式是使用官方给出的脚本 https://get.docker.com/

只需要在终端里输入以下命令即可开始安装

[root@www.hotmindshare.com ~]# curl -fsSL get.docker.com -o get-docker.sh
[root@www.hotmindshare.com ~]# sudo sh get-docker.sh
...
...
If you would like to use Docker as a non-root user, you should now consider
adding your user to the "docker" group with something like:
  sudo usermod -aG docker your-user
Remember to log out and back in for this to take effect!
WARNING: Adding a user to the "docker" group grants the ability to run
         containers which can be used to obtain root privileges on the
         docker host.
         Refer to https://docs.docker.com/engine/security/security/#docker-daemon-attack-surface
         for more information.

如果你使用的是 root 用户,可以先轻松下再回来,如果你使用的是普通用户,那么需要 sudo sh get-docker.sh,然后输入登录密码

稍等片刻,Docker 就会安装完毕,是不是很省事,因为我们连一张图都没发

可以安装完成后最后那几段提示

If you would like to use Docker as a non-root user, you should now consider
    adding your user to the "docker" group with something like:
    sudo usermod -aG docker your-user
   Remember that you will have to log out and back in for this to take effect!

意思是说,如果以非 root 用户可以运行 docker 时,需要执行 sudo usermod -aG docker souyunku 命令然后重新登陆,否则会有如下报错

[penglei@localhost ~]docker fun hello-world
docker: Cannot connect to the Docker daemon. Is the docker daemon running on this host ?
...

启动 Docker 服务

如果是 Centos 7 以上版本,则使用下面的命令启动 Docker 服务

systemctl start docker

如果是较低的版本,则使用下面的命令启动 Docker 服务

service docker start

Docker Hello World

我们可以使用 docker run hello-world 命令来检查下是否安装成功

[root@www.hotmindshare.com ~]# docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
9bb5a5d4561a: Pull complete
Digest: sha256:f5233545e43561214ca4891fd1157e1c3c563316ed8e237750d59bde73361e77
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
 1The Docker client contacted the Docker daemon.
 2The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4The 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/engine/userguide/

如果运行没有错误,那么安装成功

上次编辑于:
贡献者: Andy