Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux 或 Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
Docker 要求 CentOS 系统的内核版本高于等于 3.10,所以我们确保能顺利安装,这里更新下内核版本。
- #备份 yum 源
- $ mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo_bak
-
- #使用 aliyun yum 源
- $ wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
-
- #清理缓存
- $ yum clean all
-
- #更新 yum
- $ yum -y update
BASH
检测是否存在 Docker 相关包,如果存在则删除,否则可能造成冲突。
检测是否存在 Docker 相关包
- $ rpm -qa|grep docker
BASH
如果有存在的 Docker 相关包就执行下面命令进行删除:
- yum remove docker \
- docker-client \
- docker-client-latest \
- docker-common \
- docker-latest \
- docker-latest-logrotate \
- docker-logrotate \
- docker-selinux \
- docker-engine-selinux \
- docker-ce-cli \
- docker-engine
BASH
安装 yum 工具,方便下一步配置 yum 源:
$ yum install -y yum-utils device-mapper-persistent-data lvm2
BASH
这里使用 Aliyun Docker yum 源文件进行安装 Docker,输入下面命令进行源配置:
$ yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
BASH
显示docker-ce所有可安装版本:
- $ yum list docker-ce --showduplicates | sort -r
- Installed Packages
- * extras: mirrors.aliyun.com
- * epel: mirrors.yun-idc.com
- docker-ce.x86_64 3:18.09.6-3.el7 docker-ce-stable
- docker-ce.x86_64 3:18.09.5-3.el7 docker-ce-stable
- docker-ce.x86_64 3:18.09.4-3.el7 docker-ce-stable
- docker-ce.x86_64 3:18.09.3-3.el7 docker-ce-stable
- docker-ce.x86_64 3:18.09.2-3.el7 docker-ce-stable
- docker-ce.x86_64 3:18.09.1-3.el7 docker-ce-stable
- docker-ce.x86_64 3:18.09.0-3.el7 docker-ce-stable
- docker-ce.x86_64 18.06.3.ce-3.el7 docker-ce-stable
- docker-ce.x86_64 18.06.2.ce-3.el7 docker-ce-stable
- docker-ce.x86_64 18.06.1.ce-3.el7 docker-ce-stable
- docker-ce.x86_64 18.06.0.ce-3.el7 docker-ce-stable
BASH
安装指定docker版本
$ yum install docker-ce-18.06.3.ce-3.el7 -y
BASH
Docker 默认存储位置为"/var/lib/docker",但是有时候这个目录下存储空间小需要修改到一个大的存储目录,例如这里设置一个就可以修改 Docker 配置文件 docker.service 进行下面操作
$ vi /lib/systemd/system/docker.service
BASH
找到 ExecStartExecStart=/usr/bin/docker 这行,在后台添加 "--graph /xxx",例如这里目录为 /apps/docker 则可以按如下配置:
- ...
- ExecStart=/usr/bin/docker --graph /apps/docker
- ...
Docker 默认从 "https://hub.docker.com/" 下载镜像,由于网络原因经常超时或者下载速度慢,在国内一般需要给 Docker 设置镜像加速器来加快共有镜像的下载速度,这里创建一个 Docker 配置文件,配置一个下载代理加速地址。当然,除了配置加速器外还要配置日志相关配置,避免日志过多,占满磁盘。
Docker Deamon 文件还可以配置很多参数,具体可以看其官方文档:Daemon configuration file
- #创建Docker配置文件夹
- $ mkdir -p /etc/docker
-
- #添加加速器配置文件
- $ cat > /etc/docker/daemon.json << EOF
- {
- "registry-mirrors": [
- "http://hub-mirror.c.163.com",
- "https://registry.docker-cn.com"
- ],
- "log-driver": "json-file",
- "log-opts": {
- "max-size": "100m",
- "max-file":"5"
- }
- }
- EOF
BASH
启动 Docker:
$ systemctl start docker && systemctl enable docker
BASH
如果 Docker 已经启动,则需要重启 Docker:
$ systemctl daemon-reload && systemctl restart docker
BASH
拉取一个 hello-world 镜像来确认docker可用,执行以下命令:
# docker run hello-world
BASH
如果出现以下信息,则代表 docker 可用:
- Unable to find image 'hello-world:latest' locally
- latest: Pulling from library/hello-world
- d1725b59e92d: Pull complete
- Digest: sha256:0add3ace90ecb4adbf7777e9aacf18357296e799f81cabc9fde470971e499788
- 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:
- 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/
BASH
Docker-Compose 是用于定义和运行多容器 Docker 应用程序的工具,通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。由于在实际使用 Docker 过程中我们会经常使用该组件,所以这里我们也顺便进行一下安装,操作如下:
- ## 下载 docker-compose
- $ curl -L https://github.com/docker/compose/releases/download/1.27.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
-
- ## 配置文件的执行权限
- $ chmod +x /usr/local/bin/docker-compose
BASH
安装完成后我们执行下面命令,查看是否能够正常执行:
$ docker-compose version
BASH
Cannot retrieve metalink for repository: epel. Please verify its path and try again
BASH
打开/etc/yum.repos.d/epel.repo
$ vi /etc/yum.repos.d/epel.repo
BASH
- [epel]
- name=Extra Packages for Enterprise Linux 7 - $basearch
- #baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch
- metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch
BASH
修改为:
- [epel]
- name=Extra Packages for Enterprise Linux 7 - $basearch
- baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch
- #metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch
BASH
再清理源,重新安装
- #清理缓存
- $ yum clean all
-
- #重新安装包
- $ yum install -y 包名
BASH
--END--