Docker 概述 与 CentOS 上安装、卸载、启动,常见错误处理
目录环境说明Docker 卸载查看安装包删除安装包删除docker 镜像Docker 安装检查安装情况yum update安装 Docker查看版本启动 Docker查看运行状态停止 Docker开机启动 Docker本文承接《Docker 简介 与 核心概念》本文将介绍在 CentOS 7. 2 发行版上安装 docker环...
目录
Docket 容器简述
1、Docker 是一个开源的应用容器引擎,是一个轻量级容器技术,基于Go 语言并遵从 Apache2.0 协议开源。
2、Docker 让开发者可以打包自己的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
3、容器是完全使用沙箱机制,相互之间不会有任何接口,性能好,启动快。
4、Docker 官网地址:https://www.docker.com
特性 | 容器 | 虚拟机 |
---|---|---|
启动 | 秒级 | 分钟级 |
硬盘使用 | 一般为 Mb | 一般为 Gb |
性能 | 接近原生 | 弱于 |
系统支持量 | 单机支持上千个容器 | 一般几十个 |
Docket 核心概念
主机(Host) | 1、安装了 Docker 程序的机器(Docker直接安装在操作系统之上),可以是物理机或者虚拟机上,可以是 Windows 或者 Linux 上,可以是本地也可以是远程。 2、安装了 Docker 则可以运行守护进程以及容器了。 |
客户端(Client) | 1、用于连接 docker 主机进行操作,类似于 Mysql 客户端连接 Mysql 进行操作。 2、docker 客户端通过命令行或者其它工具使用 Docker |
仓库(Registry) | 1、Docker 仓库用来保存打包好的各种软件镜像,可以理解为代码控制中的代码仓库。程序员也可以建立自己的私有仓库 2、Docker Hub 中提供了庞大的镜像集合供大家使用,就像 Maven 的中央仓库提供大家访问下载一样。 |
镜像(Images) | 1、软件打包好的镜像,放在 docker 仓库中; 2、Docker Hub 中以及拥有了庞大的镜像集合供大家使用下载使用。 3、软件镜像(Images)启动之后就会有一个对应的容器(Container),镜像位于自己的容器中,容器之间相互隔离 |
容器(Container) | 1、镜像启动后的实例称为一个容器,容器是独立运行的一个或一组应用,容器之间相互隔离。 2、镜像与容器的关系类比面向对象中的类和对象。 |
安装环境检查
1、检查 Linux 内核版本,Docker 要求CentOS 系统的内核版本高于3.10,如下所示 内核版本为 3.10.0-327.el7
2、本文环境:CentOS 7.2.1511 发行版本,内核版本为 3.10.0-327.el7 + Docker 1.13
[root@localhost home]# uname -a
Linux localhost.localdomain 3.10.0-327.el7.x86_64 #1 SMP Thu Nov 19 22:10:57 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
[root@localhost home]# lsb_release -a
LSB Version: :core-4.1-amd64:core-4.1-noarch
Distributor ID: CentOS
Description: CentOS Linux release 7.2.1511 (Core)
Release: 7.2.1511
Codename: Core
[root@localhost home]#
3、如下所示当前 CentOS 服务器没有安装 Docker,而且提供了安装包可以安装,是一个 1.13 版本的 Docker。
[root@localhost home]# yum list docker
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
可安装的软件包
docker.x86_64 2:1.13.1-162.git64e9980.el7.centos extras
[root@localhost home]#
4、使用 yum 安装 Docker 之前,需要检查一下 CentOS 系统环境的软件是否需要更新,自己第一次在虚拟机上安装 docker 的时候,就是因为没有更新软件,导致安装后 Docker 启动失败。
所以强烈建议先使用 "yum check-update" 命令检查是否有软件需要更新,然后使用 "yum update" 命令更新所有软件,如下所示 已经全部更新完了。
[root@localhost home]# yum check-update
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
[root@localhost ~]# yum update
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.zju.edu.cn
* updates: centos.ustc.edu.cn
No packages marked for update
[root@localhost ~]#
Docker 容器卸载
1、如果已经安装了 docket,想要重新安装,则需要先卸载 docker 。
查看安装包
[root@localhost docker]# yum list installed |grep docker
docker.x86_64 2:1.13.1-68.gitdded712.el7.centos @extras
docker-client.x86_64 2:1.13.1-68.gitdded712.el7.centos @extras
docker-common.x86_64 2:1.13.1-68.gitdded712.el7.centos @extras
[root@localhost docker]#
删除安装包
[root@localhost docker]# yum -y remove docker.x86_64
...
[root@localhost docker]# yum -y remove docker-client.x86_64
...
[root@localhost docker]# yum -y remove docker-common.x86_64
...
[root@localhost docker]# yum list installed |grep docker
[root@localhost docker]#
删除 docker 镜像
/var/lib/docker 是 Docker 安装后默认的容器和镜像目录,也要一并删除
[root@localhost lib]# rm -rfv /var/lib/docker/
...
[root@localhost docker]#
Docker 容器安装
1、yum 安装软件是非常简单的,比 Windows 系统上安装软件还要简单,使用 “ yum -y install docker ” 一行命令即可安装 dcoker。
2、安装完成后,使用 docker version 查看安装情况,如下所示表示安装成功,如果看不到下面的 Server 信息,则可以通过 systemctl start docker 命令启动 docker。
[root@localhost ~]# docker version
Client:
Version: 1.13.1
API version: 1.26
Package version: docker-1.13.1-162.git64e9980.el7.centos.x86_64
Go version: go1.10.3
Git commit: 64e9980/1.13.1
Built: Wed Jul 1 14:56:42 2020
OS/Arch: linux/amd64
Server:
Version: 1.13.1
API version: 1.26 (minimum version 1.12)
Package version: docker-1.13.1-162.git64e9980.el7.centos.x86_64
Go version: go1.10.3
Git commit: 64e9980/1.13.1
Built: Wed Jul 1 14:56:42 2020
OS/Arch: linux/amd64
Experimental: false
[root@localhost ~]#
Docker 启动 与 停止
1、docker 程序安装完成后自己本身就是一个服务,类似于 mysql 安装后自己也是一个服务。
2、对于注册为服务的软件,管理操作起来更加简单,可以使用 Linux 的 “ service ” 命令,对于 CentOS 7.0 及以上的版本建议使用 “systemctl ” 命令
systemctl start docker | 启动 docker 服务 |
systemctl restart docker | 重启 docker 服务 |
systemctl status docker | 查看服务运行的状态 |
systemctl stop docker | 停止 Docker 服务 |
[root@localhost ~]# systemctl start docker
[root@localhost ~]#
[root@localhost ~]# 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 日 2020-08-02 15:08:27 CST; 3s ago
Docs: http://docs.docker.com
Main PID: 9448 (dockerd-current)
CGroup: /system.slice/docker.service
├─9448 /usr/bin/dockerd-current --add-runtime docker-runc=/usr/libexec/docker/docker-runc-current --default-runtime=docker-runc --exec-...
└─9454 /usr/bin/docker-containerd-current -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-t...
8月 02 15:08:27 localhost.localdomain dockerd-current[9448]: time="2020-08-02T15:08:27.062988257+08:00" level=warning msg="overlay2: the backing ...
8月 02 15:08:27 localhost.localdomain dockerd-current[9448]: time="2020-08-02T15:08:27.146956026+08:00" level=info msg="Graph migration to ...conds"
8月 02 15:08:27 localhost.localdomain dockerd-current[9448]: time="2020-08-02T15:08:27.147854010+08:00" level=info msg="Loading containers: start."
8月 02 15:08:27 localhost.localdomain dockerd-current[9448]: time="2020-08-02T15:08:27.164857148+08:00" level=info msg="Firewalld running: true"
8月 02 15:08:27 localhost.localdomain dockerd-current[9448]: time="2020-08-02T15:08:27.316017863+08:00" level=info msg="Default bridge (doc...dress"
8月 02 15:08:27 localhost.localdomain dockerd-current[9448]: time="2020-08-02T15:08:27.444229408+08:00" level=info msg="Loading containers: done."
8月 02 15:08:27 localhost.localdomain dockerd-current[9448]: time="2020-08-02T15:08:27.473971174+08:00" level=info msg="Daemon has complete...ation"
8月 02 15:08:27 localhost.localdomain dockerd-current[9448]: time="2020-08-02T15:08:27.473992715+08:00" level=info msg="Docker daemon" comm...1.13.1
8月 02 15:08:27 localhost.localdomain dockerd-current[9448]: time="2020-08-02T15:08:27.485248295+08:00" level=info msg="API listen on /var/....sock"
8月 02 15:08:27 localhost.localdomain systemd[1]: Started Docker Application Container Engine.
Hint: Some lines were ellipsized, use -l to show in full.
Docker 容器开机自启
1、因为 Docker 本身是服务,做成开机自启就方便多了,使用命令:systemctl enable docker
[root@localhost ~]# systemctl enable docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
[root@localhost ~]#
Docker 使用步骤
1、安装 Docker
2、从 Docker 仓库(Docker Hub )找到目标软件对应的镜像
3、使用 Docker 运行这个镜像,这个镜像就会生成一个 Docker 容器;
4、对容器的启动与停止就是对软件的启动停止;
https://blog.csdn.net/wangmx1993328/category_7934575.html
常见错误处理
read: connection refused
1、之前安装使用了很长一段时间都没有问题,隔了很久有一天来用的时候,居然报错了连接超时了,可能和我平时捣鼓环境有关系:
[root@wangmaoxiong001 docker]# docker search mysql
Error response from daemon: Get https://index.docker.io/v1/search?q=mysql&n=25: dial tcp: lookup index.docker.io on [::1]:53: read udp [::1]:40486->[::1]:53: read: connection refused
2、网上说这是因为dns域名没有解析的原因,编辑 /etc/resolv.conf 文件,增加一行dns地址,例如:nameserver 8.8.4.4,照着这样操作后,亲测确实正常了。
[root@wangmaoxiong001 docker]# cd /etc
[root@wangmaoxiong001 etc]# vim /etc/resolv.conf
[root@wangmaoxiong001 etc]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 8.8.4.4
[root@wangmaoxiong001 etc]# systemctl restart network
[root@wangmaoxiong001 etc]# docker search mysql
INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED
docker.io docker.io/mysql MySQL is a widely used, open-source relati... 14709 [OK]
...... 0
[root@wangmaoxiong001 etc]#
更多推荐
所有评论(0)