当前位置: 首页 > news >正文

Linux安装Docker完整教程

背景


最近接手了几个项目,发现项目的部署基本上都是基于Docker的,幸亏在几年前已经熟悉的Docker的基本使用,没有抓瞎。这两年随着云原生的发展,Docker在云原生中的作用使得它也蓬勃发展起来。

今天这篇文章就带大家一起实现一下在Linux操作系统下Docker的部署过程,收藏起来,以备不时之需。当然,如果对Docker感兴趣的话,可以直接根据本文的步骤操作起来。终有一天你会享受到Docker的便利与魅力的。

Docker及系统版本


Docker从17.03版本之后分为CE(Community Edition: 社区版)和EE(Enterprise Edition: 企业版)。相对于社区版本,企业版本强调安全性,但需付费使用。这里我们使用社区版本即可。

Docker支持64位版本的CentOS 7和CentOS 8及更高版本,它要求Linux内核版本不低于3.10。

查看Linux版本的命令这里推荐两种:lsb_release -acat /etc/redhat-release

lsb_release -a查看效果:

[ ~]$ lsb_release -a
LSB Version: :core-4.1-amd64:core-4.1-noarch
Distributor ID: CentOSDescription: CentOS Linux release 7.6.1810 (Core)
Release: 7.6.1810Codename: Core

cat /etc/redhat-release查看版本效果:

[~]$ cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)

显然,当前Linux系统为CentOS7。再查一下内核版本是否不低于3.10。

查看内核版本有三种方式:

  • cat /proc/version

  • uname -a

  • uname -r

三种形式都可以查看到内容版本,比如:

[ ~]$ uname -r
3.10.0-1160.45.1.el7.x86_64

可以看到,当前Linux内核版本满足Docker的需要。

Docker的自动化安装


Docker官方和国内daocloud都提供了一键安装的脚本,使得Docker的安装更加便捷。

官方的一键安装方式:

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

国内 daocloud一键安装命令:

curl -sSL https://get.daocloud.io/docker | sh

执行上述任一条命令,耐心等待即可完成Docker的安装。

Docker手动安装


手动安装Docker分三步:卸载、设置仓库、安装。

卸载Docker(可选)

第一步,卸载历史版本。这一步是可选的,如果之前安装过旧版本的Docker,可以使用如下命令进行卸载:

yum remove docker \       docker-client \             docker-client-latest \             docker-common \             docker-latest \               docker-latest-logrotate \             docker-logrotate \              docker-selinux \              docker-engine-selinux \           docker-engine \               docker-ce

设置源仓库

第二步,设置仓库。新主机上首次安装Docker Engine-Community之前,需要设置Docker仓库。此后可从仓库安装和更新Docker。

在设置仓库之前,需先按照所需的软件包。yum-utils提供了yum-config-manager,并且device mapper存储驱动程序需要device-mapper-persistent-data和lvm2。

$ sudo yum install -y yum-utils \  device-mapper-persistent-data \  lvm2

执行上述命令,安装完毕即可进行仓库的设置。使用官方源地址设置命令如下:

$ sudo yum-config-manager \  --add-repo \   https://download.docker.com/linux/centos/docker-ce.repo

通常,官方的源地址比较慢,可将上述的源地址替换为国内比较快的地址:

  • 阿里云:http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

  • 清华大学源:https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo

仓库设置完毕,即可进行Docker的安装。

Docker安装

执行一下命令,安装最新版本的 Docker Engine-Community 和 containerd。

sudo yum install -y docker-ce docker-ce-cli containerd.io

docker-ce为社区免费版本。稍等片刻,docker即可安装成功。但安装完成之后的默认是未启动的,需要进行启动操作。

如果不需要docker-ce-cli或containerd.io可直接执行如下命令:

yum install -y docker-ce

至此,完成Docker安装。

Docker启动


启动Docker的命令:

sudo systemctl start docker

通过运行hello-world镜像来验证是否正确安装了Docker Engine-Community。

// 拉取镜像
sudo docker pull hello-world
// 执行hello-world
sudo docker run hello-world

如果执行之后,控制台显示如下信息,则说明Docker安装和启动成功:

[root@iZ8vb8pfb2awsz4qy7vm7qZ ~]# docker run hello-world
Hello from Docker!This message shows that your installation appears to be working correctly.……

除了启动Docker,一些其他启动相关的命令:

  • 守护进程重启:systemctl daemon-reload

  • 重启Docker服务:systemctl restart docker / service docker restart

  • 关闭Docker服务:docker service docker stop / docker systemctl stop docker

删除Docker


删除安装包:

yum remove docker-ce

删除镜像、容器、配置文件等内容:

rm -rf /var/lib/docker

Docker其他常见命令


安装完成Docker之后,这里汇总列一下常见的Docker操作命令:

  • 搜索仓库镜像:docker search 镜像名

  • 拉取镜像:docker pull 镜像名

  • 查看正在运行的容器:docker ps

  • 查看所有容器:docker ps -a

  • 删除容器:docker rm container_id

  • 查看镜像:docker images

  • 删除镜像:docker rmi image_id

  • 启动(停止的)容器:docker start 容器ID

  • 停止容器:docker stop 容器ID

  • 重启容器:docker restart 容器ID

  • 启动(新)容器:docker run -it ubuntu /bin/bash

  • 进入容器:docker attach 容器IDdocker exec -it 容器ID /bin/bash,推荐使用后者。

更多的命令可以通过docker help命令来查看。

http://www.lryc.cn/news/5718.html

相关文章:

  • 备份基础知识
  • C++学习记录——팔 内存管理
  • Spring事务失效原因分析解决
  • 4个月的测试经验,来面试就开口要17K,面试完,我连5K都不想给他.....
  • python学习之pyecharts库的使用总结
  • 【taichi】利用 taichi 编写深度学习算子 —— 以提取右上三角阵为例
  • 二进制 k8s 集群下线 worker 组件流程分析和实践
  • Bean的六种作用域
  • Http发展历史
  • 高级Java程序员必备的技术点,你会了吗?
  • 【暴力量化】查找最优均线
  • Java读取mysql导入的文件时中文字段出现�??的乱码如何解决
  • k8s核心概念—Pod Controller Service介绍——20230213
  • Tensorflow的数学基础
  • IT培训就是“包就业”吗?内行人这么看
  • 【算法】【数组与矩阵模块】顺时针旋转打印矩阵
  • Java中的锁概述
  • 微电影行业痛点解决方案
  • 使用Spring框架的好处是什么
  • 【表格单元格可编辑】vue-elementul简单实现table表格点击单元格可编辑,点击单元格变成弹框修改数据
  • vue3.0 响应式数据
  • uni-app ①
  • 20个 Git 命令玩转版本控制
  • SAP NetWeaver版本和SAP Kernel版本的确定
  • 面试23K字节测试开发岗被血虐,到底具有怎样的技术才算高级水平?
  • 智云通CRM:买对了吗——大客户采购的方案实施
  • 前后端开发过程中的跨域问题总结
  • 爬虫:栖落的电影网站,利用requests和re模块
  • 使用burpsuite抓包 + sql工具注入 dvwa靶场
  • 树与图中的dfs和bfs—— AcWing 846. 树的重心 AcWing 847. 图中点的层次