Docker for Linux
之前在win上实现了docker的使用,下面在linux中安装并使用docker
环境:Centos
在官网中已经包含docker安装的方法
Install Docker Engine on CentOS,这里主要说下基于安装包(package)的安装方法,首先按照设备环境选择需要的文件官方链接
通过wget [url]
的方式,将文件下载到本地,文件都是rpm软件包,可以使用yum localinstall [filepath] 或者 yun install [filepath]
直接安装,三个包的安装都是傻瓜式的
实际操作中,使用systemctl start docker
启动docker,第一次启动后没有成功,提示systemctl status vsftpd.service” and “journalctl -xe” for details.
系统提示查看日志获取失败原因,输入journalctl -xe
后
-- Unit containerd.service has finished shutting down.
Dec 02 00:03:50 VM-0-11-centos systemd[1]: containerd.service: Start request repeated too quickly.
Dec 02 00:03:50 VM-0-11-centos systemd[1]: containerd.service: Failed with result 'exit-code'.
Dec 02 00:03:50 VM-0-11-centos systemd[1]: Failed to start containerd container runtime.
-- Subject: Unit containerd.service has failed
-- Defined-By: systemd
-- Support: https://access.redhat.com/support
--
-- Unit containerd.service has failed.
--
-- The result is failed.
只是提供了redhat的官网链接和失败输出就没有了,也不知道是什么地方缺了,之后尝试service docker status
可以查看docker的相关输出
Dec 01 09:57:30 VM-0-11-centos systemd[1]: Dependency failed for Docker Application Container Engine.
Dec 01 09:57:30 VM-0-11-centos systemd[1]: docker.service: Job docker.service/start failed with result 'dependency'.
Dec 01 09:57:30 VM-0-11-centos systemd[1]: Dependency failed for Docker Application Container Engine.
Dec 01 09:57:30 VM-0-11-centos systemd[1]: docker.service: Job docker.service/start failed with result 'dependency'.
Dec 01 09:57:30 VM-0-11-centos systemd[1]: Dependency failed for Docker Application Container
基本上是提示依赖缺失,但没有说清楚是什么,这会已经在网上找了好多没有的答案了,包括安装Docker启动失败,A dependency job for docker.service failed.
里面提到了防火墙和selinux安全机制的问题,但在测试后发现并没有影响,之后在一篇文章中看到docker安装失败可能是linux内核版本或者本地软件没有升级的原因Linux环境安装、卸载Docker该文在开头就提到了,linux内核支持的最低版本,也就是当前的环境包需要升级,使用yum update
即可解决问题。如果你遇到了同样的问题,而且没有其他解决方法,尝试yum update
更新当前的软件包,在更新后通过docker version
查看状态,之前使用docker -v只输出了版本号,而且无法启动服务,但正常情况下会输出
[root@VM-0-11-centos ~]# docker version
Client: Docker Engine - Community
Version: 19.03.13
API version: 1.40
Go version: go1.13.15
Built: Wed Sep 16 17:02:36 2020
OS/Arch: linux/amd64
Experimental: false
Server: Docker Engine - Community
Engine:
Version: 19.03.13
API version: 1.40 (minimum version 1.12)
Go version: go1.13.15
Built: Wed Sep 16 17:01:11 2020
OS/Arch: linux/amd64
等的信息,一般就成功运行了,查看docker服务状态
systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
Active: active (running) since Wed 2020-12-02 00:12:38 CST; 40s ago
Docs: https://docs.docker.com
Tasks: 8
Memory: 114.0M
CGroup: /system.slice/docker.service
└─1127961 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
显示active(runing)
即可,
后面可以使用docker image ls
等的指令测试也都正常,通过docker run hello-world
实现第一个容器运行并打印出结果。
以下为参考链接