目录

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 -a或cat /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

执行的结果如下图所示

至此Docker安装基本完成

Docker启动 

启动Docker的命令: 

systemctl start docker

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

// 拉取镜像

docker pull hello-world

// 执行hello-world

docker run hello-world

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

除了启动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 容器ID或docker 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

 

已设置开机启动的服务中,是看不到 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镜像,还没来得及整理,后续待完善.....

精彩链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: