目录
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博客文章来源:https://www.toymoban.com/news/detail-586268.html
如何制作Docker镜像,用于CI/CD发布当中。
制作Docker镜像,还没来得及整理,后续待完善.....文章来源地址https://www.toymoban.com/news/detail-586268.html
到了这里,关于Linux安装Docker完整详细教程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!