7

我们一起学学 Linux 安装 Docker 完整教程

 2 years ago
source link: https://os.51cto.com/article/715012.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

我们一起学学 Linux 安装 Docker 完整教程-51CTO.COM

我们一起学学 Linux 安装 Docker 完整教程
作者:二师兄 2022-07-28 08:52:08
本篇文章带大家从头到尾在Linux操作系统上安装了Docker,以及介绍了如何启动、验证及常见的命令。后面如果有机会话,再大家了解一下如何制作Docker镜像,用于CI/CD发布当中。

最近接手了几个项目,发现项目的部署基本上都是基于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 -a或cat /etc/redhat-release。

lsb_release -a查看效果:

[ ~]$ lsb_release -a
LSB Version: :core-4.1-amd64:core-4.1-noarch
Distributor ID: CentOS
Description: CentOS Linux release 7.6.1810 (Core)
Release: 7.6.1810
Codename: 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 容器ID或docker exec -it 容器ID /bin/bash,推荐使用后者。

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

本篇文章带大家从头到尾在Linux操作系统上安装了Docker,以及介绍了如何启动、验证及常见的命令。后面如果有机会话,再大家了解一下如何制作Docker镜像,用于CI/CD发布当中。


Recommend

  • 65

    作者|池建强编辑|张浩无论今天公众演讲有多么重要,未来只会更加重要。这句话不是我说的,是TED的掌门人克里斯·安德森说的。在人类漫长的文明史中,音乐与语言是两样最美好的事物。音乐传承了人类基因中最触动人心的东西,上天选择了极少数人类精英来...

  • 74

    1、防火墙:内核中具有包过滤体系内核态:netfilter用户态:iptables管理工具工作在网络层:可以对ip地址、端口、协议等信息进行处理2、规则链:规则的集合五种链:(必须大写)INPUT:入站OUTPUT:出站FORWARD:转发POSTROUTING:路由后转换PREROUTING:路由前转...

  • 45

    1、Nginx:高性能、轻量级网站服务器稳定、资源消耗低并发能力强不能直接支持动态网页2、Nginx的安装--with-http_stub_status_module添加状态统计模块检查nginx语法:nginx-t启动nginx:nginx重新加载nginx:killall-sHUPnginx退出nginx:killall-sQUITnginx杀死ng...

  • 49

    曾经吹过的牛皮,如今破得掉了一地

  • 23

    程序员 - @rizon - 爱好级别的学习,目前已经学了很多感兴趣的东西了。比如 python,nodejs。 所以问问大家 go 语言要不要学一下?就是他有什么好玩的地方?比如 python,nodejs 我

  • 16

    哎,曾几何时 想当年,其实我也特别钟情于 if/else连环写法,上来就是一顿SAO操作,比如举个好理解的简单栗子: 一般来说我们正常的后台管理系统都有所谓的角色的概念,不同管理员权限不一样,能够行使的操作也不一样...

  • 21

    问与答 - @murisan - 为什么学代码这么吃力?我真的怀疑人生,归根到底我对代码不感兴趣,没数学有意思,我可能不适合当程序员,那我适合干什么?有人可以给我点建议吗?我真的迷惑太久了,太烦了。

  • 16

    程序员 - @chaleaoch - 心血来潮好好学习数学,学了几天发现需要好几个月才能学个皮毛,果断放弃.也不知道是第几次心血来潮,觉得从底层开始学见效太慢,打算从顶到底.过段时间遇到瓶颈,又来一遍从底到顶...吐吐槽.

  • 8

    安装前的准备 Step1: 如果你系统已经有mysql,如一般centos自带mysql5.1系列,那么你需要删除它,先检查一下系统是否自带mysql yum list installed | grep mysql Step2: 删除系统自带的mysql及其依赖命令

  • 4

    我们一起学学加载根文件系统-51CTO.COM 我们一起学学加载根文件系统 作者:闪客 2022-04-07 09:29:04 可是硬盘中凭什么就有了这些信息呢?这就是个鸡生蛋蛋生鸡的问题了。你可以先写一个操作系统...

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK