技术:Docker基础知识(一)

简介: Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。Docker官网:https://www.docker.com/

1 引言

1.1 什么是Docker?

下面看下来自百度百科的定义:

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。


来看一下什么是Docker:

  • 开源,遵从 Apache2.0 协议
  • 应用容器引擎
  • Go语言开发
  • 完全沙箱机制
  • 相互之间不会有任何接口
  • 开销极低
  • 17.03 版本之后分为社区版和企业版


当你都有能力来看下Docker,我感觉基础的知识就无需解释了,那么我们正式开始吧。


1.2 下载安装以及安装条件

Docker Engine 是一种开源容器化技术,用于构建和容器化您的应用程序。Docker Engine 充当客户端-服务器应用程序。


「官网和下载」

Docker官网:https://www.docker.com/

通常,我们常在Linux上面操作,我们需要下载Linux的版本,下载地址:https://docs.docker.com/engine/install/

我当前实验操作的环境如下:

[root@aion ~]# uname -aLinux aion 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

所以,我们需要从官网下载我们需要的版本引擎来安装。

image.png

如果你的操作环境同我差不多,我建议来看一下这个操作步骤:

https://docs.docker.com/engine/install/centos/


总结如下:

  • CentOS 7+
  • 必须启用centos-extras存储库
  • 存档版本不受支持或测试


如果你的网速过慢,可以参考下阿里云的下载地址,https://mirrors.aliyun.com/docker-ce/linux/centos/7.6/x86_64/stable/Packages/?spm=a2c6h.25603864.0.0.36c61d40HTf28K


1.3 检查和卸载旧版本

如果之前安装过Docker,那么请执行下面的步骤来卸载干净以前的残留包,如果之前没有安装过,这一个步骤可以忽略。

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine


当然,你也可以使用阿里云的镜像来做一些处理。https://developer.aliyun.com/mirror/?serviceType=&tag=&keyword=docker


1.4 安装方式和应用场景

「存储库方式」

此方式为联网方式,建议大家在本地已联网机器上面做测试。


「安装包方式」

此方式适合不能联网方式,也比较适合我们在内网安装。所以需要下载该 .rpm版本的文件并手动安装。这也是我们此次安装的方式。


「应用场景」

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


1.5 如何安装Docker


安装Docker有很多平台,这里我测试环境是Linux(CentOS 7)。我当前实验操作的环境如下:

### 系统版本以及内核的版本[root@aion ~]# uname -aLinux aion 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux[root@aion docker]# cat /etc/redhat-releaseCentOS Linux release 7.6.1810 (Core)
### sshd服务的端口[root@aion docker]# ss -lntup|grep sshdtcp    LISTEN     0128       *:22                    *:*                   users:(("sshd",pid=9209,fd=3))
tcp    LISTEN     0128      :::22                   :::*                   users:(("sshd",pid=9209,fd=4))


1、首先,从这里进去https://download.docker.com/linux/centos/, 选择合适的 CentOS 版本。浏览x86_64/stable/Packages/ 并下载.rpm要安装的 Docker 版本的文件。


最终的下载地址在这里:

https://download.docker.com/linux/centos/7/x86_64/stable/Packages/


下载当前最新的版本*20.10.18-3.el7.x86_64.rpm,下载的软件列表如下:


最终上传到实验环境如下,在安装过程中,如果还需要其他依赖包,请自行安装:

image.png


其他版本以及平台安装请参考官网提供资料。

Ubuntu Docker 安装

Debian Docker 安装

CentOS Docker 安装(本文安装方式)

Windows Docker 安装

MacOS Docker 安装

Docker镜像加速 安装

Linux AAR3R 安装

二进制文件 安装

快捷脚本 安装


2、安装

这个安装就比较简单了,只需要使用yum执行安装包来安装Docker即可。

sudo yum install *.rpm

执行完成后,此时,Docker主要做了两件事情。

  • Docker 已安装但未启动。
  • 该docker组已创建,但没有用户添加到该组。


由于我这里是不能联网,所以只能使用rpm来安装。安装命令如下:

rpm -ivh ./*.rpm


3、启动

sudo systemctl start docker


4、测试

sudo docker run hello-world


1.6 卸载Docker

卸载 Docker Engine、CLI、Containerd 和 Docker Compose 软件包:

sudo yum remove docker-ce docker-ce-cli containerd.io docker-compose-plugin

主机上的映像、容器、卷或自定义配置文件不会自动删除。要删除所有映像、容器和卷:

sudorm-rf /var/lib/docker
sudorm-rf /var/lib/containerd


注意⚠️:必须手动删除任何已编辑的配置文件





相关文章
|
2月前
|
Cloud Native Linux 开发者
【Docker】Docker:解析容器化技术的利器与在Linux中的关键作用
【Docker】Docker:解析容器化技术的利器与在Linux中的关键作用
|
11天前
|
存储 测试技术 Linux
Docker技术仓库
本文详细介绍了Docker中数据卷的作用、特点、管理方式,包括bindmounts和volumes挂载、Dockerfile中的数据卷使用、Docker仓库(公有与私有)以及DockerCompose在多容器应用中的应用。
|
20天前
|
运维 Ubuntu Docker
深入理解容器化技术:Docker的应用与实践
在这个数字化转型迅速推进的时代,容器化技术为软件开发和部署提供了新的路径。本文将深入探讨Docker技术的基本原理、应用场景以及实际操作,旨在帮助读者全面理解并掌握这一关键技术。
127 2
|
22天前
|
运维 Kubernetes 持续交付
Docker与Kubernetes:容器化技术的黄金搭档
【6月更文挑战第10天】Docker和Kubernetes是容器化技术的黄金组合,Docker提供轻量级、可移植的容器引擎,简化应用部署,而Kubernetes作为容器编排系统,实现自动化部署、扩展和管理,确保高可用性和可扩展性。两者的协作使得容器化应用更高效、可靠,共同推动软件开发和运维的创新。
|
6天前
|
Docker 容器
技术经验分享:Docker安装及更换源
技术经验分享:Docker安装及更换源
46 0
|
11天前
|
应用服务中间件 Go 数据库
Docker核心技术(二)
Docker核心功能包括`docker container inspect`用于检查容器详情,`docker logs`显示容器日志,`docker attach`连接容器。容器与镜像是独立的,镜像是静态的执行环境,容器是动态实例。Docker提供多种网络模式,如默认的bridge、host、none、overlay和macvlan。管理网络的命令有`docker network ls`(列出网络)、`docker network create`(创建网络)、`docker network rm`(删除网络)和`docker network inspect`(检查网络详情)。
|
11天前
|
NoSQL 关系型数据库 Shell
Docker核心技术(一)
本文介绍了Docker的核心技术——容器,包括容器的定义、与虚拟机的区别,以及容器的生命周期阶段(创建、运行、暂停、停止和删除)。同时详细讲解了容器的网络管理和Docker提供的五种网络驱动模式。
|
2月前
|
存储 Linux 调度
Ubantu docker学习笔记(五)容器底层技术
Ubantu docker学习笔记(五)容器底层技术
|
2月前
|
Kubernetes Java 调度
Java容器技术:Docker与Kubernetes
Java容器技术:Docker与Kubernetes
160 0
|
2月前
|
Linux 开发者 Docker
Docker容器化技术详解
【4月更文挑战第30天】Docker,一个开源的容器化平台,助力开发者通过轻量级容器打包应用及依赖,实现跨平台快速部署。核心概念包括:容器(可执行的软件包)、镜像(只读模板)、Dockerfile(构建镜像的指令文件)和仓库(存储镜像的地方)。Docker利用Linux内核功能隔离容器,采用联合文件系统构建镜像。广泛应用包括开发测试一致性、微服务部署、CI/CD以及本地到远程部署。通过安装Docker,编写Dockerfile,构建&运行容器,可实现高效灵活的应用管理。随着容器技术进步,Docker在云计算和DevOps中的角色日益重要。