Linux安装Docker完整详细教程

目录

Docker及系统版本

Docker的自动化安装

Docker的手动安装(CentOS7)

1.1 卸载历史版本的Docker

1.2 安装依赖包

1.3 更新本地镜像源(也可以叫做:设置源仓库)

1.4 Docker安装

1.5 配置镜像加速

Docker启动 

删除Docker

Docker其他常见命令

Docker设置开机自启动

1、查看所有已启动的服务

2、查看已设置的开机启动服务

3、设置开机启动

4、关闭开机启动

Docker容器设置自动启动 

Docker如何搭建和部署PHP

如何制作Docker镜像,用于CI/CD发布当中。 


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 命令,则使用:cat /etc/redhat-release 即可

再查一下内核版本是否不低于3.10 

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

  • cat /proc/version

  • uname -a

  • uname -r

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

 可以看到,当前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的手动安装(CentOS7)

  • Docker 分为 CE 和 EE 两大版本。CE 即社区版(免费,支持周期 7 个月)
  • EE 即企业版,强调安全,付费使用,支持周期 24 个月。
  • Docker CE 分为 stable test 和 nightly 三个更新频道。 官方网站上有各种环境下的安装指南,这里主要介绍 Docker CE 在 CentOS上的安装。
  • 1.1 卸载历史版本的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
  • 1.2 安装依赖包

yum-utils提供了yum-config-manager,并且device mapper存储驱动程序需要device-mapper-persistent-data和lvm2。 

yum install -y yum-utils \device-mapper-persistent-data \lvm2 --skip-broken
  • 1.3 更新本地镜像源(也可以叫做:设置源仓库)

因为docker默认官方的镜像源地址是国外的,速度很慢,这里将数据源设置为阿里云的镜像。当然国内还有其他的镜像源

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

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

yum-config-manager \ --add-repo \ https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  • 1.4 Docker安装

yum install -y docker-ce

问题出现了,我在执行完 yum install -y docker-ce 命令后,报错:No package docker-ce available.

提示: No package docker-ce available. 是因为我没有卸载旧版的Docker

  • 1.4.1 解决方法:

 卸载旧版本的 docker 及其相关依赖

yum remove docker docker-common container-selinux docker-selinux docker-engine
  • 1.4.2 更新yum(这个过程稍微有点儿慢)
yum update
  • 1.4.3 安装 yum-utils,它提供了 yum-config-manager,可用来管理yum源
yum install -y yum-utils
  • 1.4.4 添加yum源,等同 【1.3 更新本地镜像源】中提到的命令
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  • 1.4.5 更新索引
centos7的命令:
yum makecache fast

centos8的命令:
yum makecache
  • 1.4.6 再次执行安装Docker命令
yum install -y docker-ce
  • 1.5 配置镜像加速

docker官方镜像仓库网速较差,我们需要设置国内镜像服务:

参考阿里云的镜像加速文档:阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台欢迎登录阿里云,全球领先的云计算及人工智能科技公司,阿里云为200多个国家和地区的企业、开发者和政府机构提供云计算基础服务及解决方案。阿里云云计算、安全、大数据、人工智能、企业应用、物联网等云计算服务。https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors 

  • 1.5.1 创建文件夹(如果文件夹已存在,可不用创建)
mkdir -p /etc/docker
  •  1.5.6 在文件夹内创建一个 deamon.json文件
#在新建的 daemon.json文件中添加内容
[root@wpl docker]# sudo tee /etc/docker/daemon.json <<-'EOF'
> {
>   "registry-mirrors": ["https://akchsmlh.mirror.aliyuncs.com"]
> }
> EOF
{
  "registry-mirrors": ["https://akchsmlh.mirror.aliyuncs.com"]
}

#重新加载文件
[root@wpl docker]# sudo systemctl daemon-reload

#重启docker
[root@wpl docker]# sudo systemctl restart docker

#查看docker运行状态
[root@wpl docker]# systemctl status docker

执行的结果如下图所示

Linux安装Docker完整详细教程_第1张图片

至此Docker安装基本完成

Docker启动 

  • 启动Docker的命令: 
systemctl start docker
  •  通过运行hello-world镜像来验证是否正确安装了Docker Engine-Community。
// 拉取镜像
docker pull hello-world
// 执行hello-world
docker run hello-world
  •  如果执行之后,控制台显示如下信息,则说明Docker安装和启动成功:

Linux安装Docker完整详细教程_第2张图片

  • 除了启动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 -f 镜像名/镜像ID

  • 加载镜像:docker load -i 镜像保存文件位置

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

  • 停止容器:docker stop  容器ID

  • 重启容器:docker restart 容器ID

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

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

  • 查看docker状态:systemctl status docker

  • 查看docker版本:docker -v

  • 查看容器内目录:docker inspect 容器ID

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

Docker设置开机自启动

  • 1、查看所有已启动的服务

systemctl list-units --type=service
  • 2、查看已设置的开机启动服务

systemctl list-unit-files | grep enable

 Linux安装Docker完整详细教程_第3张图片

已设置开机启动的服务中,是看不到 docker.service的。

  • 3、设置开机启动

systemctl enable docker.service
  • 4、关闭开机启动

systemctl disable docker.service

 当执行完:systemctl enable docker.service 命令时,再次查看开启启动服务,就会在列表中看到 docker.service

Docker容器设置自动启动 

  • 启动时加–restart=always

例如:启动mysql服务,跟随docker一起启动。

docker run -p 3306:3306 --name mysql --restart=always -v /application/mysql/conf:/etc/mysql/conf.d -v /application/mysql/logs:/logs -v /application/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6
  • 已经启动的,则使用update更新:
docker update --restart=always 容器id或name

Docker如何搭建和部署PHP

本编文章实操的是 Linux安装Docker,安装完成就该实际应用到项目了。Docker如何搭建和部署PHP请参考我写的另外一篇文章

Docker搭建PHP运行环境_Super乐的博客-CSDN博客

如何制作Docker镜像,用于CI/CD发布当中。 

制作Docker镜像,还没来得及整理,后续待完善.....

你可能感兴趣的:(docker,docker,linux,运维)