目录
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从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官方和国内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可以跳过此步骤
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
yum-utils提供了yum-config-manager,并且device mapper存储驱动程序需要device-mapper-persistent-data和lvm2。
yum install -y yum-utils \device-mapper-persistent-data \lvm2 --skip-broken
因为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
yum install -y docker-ce
问题出现了,我在执行完 yum install -y docker-ce 命令后,报错:No package docker-ce available.
提示: No package docker-ce available. 是因为我没有卸载旧版的Docker
卸载旧版本的 docker 及其相关依赖
yum remove docker docker-common container-selinux docker-selinux docker-engine
yum update
yum install -y yum-utils
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
centos7的命令:
yum makecache fast
centos8的命令:
yum makecache
yum install -y docker-ce
docker官方镜像仓库网速较差,我们需要设置国内镜像服务:
参考阿里云的镜像加速文档:阿里云登录 - 欢迎登录阿里云,安全稳定的云计算服务平台欢迎登录阿里云,全球领先的云计算及人工智能科技公司,阿里云为200多个国家和地区的企业、开发者和政府机构提供云计算基础服务及解决方案。阿里云云计算、安全、大数据、人工智能、企业应用、物联网等云计算服务。https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
mkdir -p /etc/docker
#在新建的 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安装基本完成
systemctl start docker
// 拉取镜像
docker pull hello-world
// 执行hello-world
docker run hello-world
守护进程重启:
systemctl daemon-reload
重启Docker服务:
systemctl restart docker / service docker restart
关闭Docker服务:
docker service docker stop / docker systemctl stop docker
yum remove docker-ce
rm -rf /var/lib/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
命令来查看。
systemctl list-units --type=service
systemctl list-unit-files | grep enable
已设置开机启动的服务中,是看不到 docker.service的。
systemctl enable docker.service
systemctl disable docker.service
当执行完:systemctl enable docker.service 命令时,再次查看开启启动服务,就会在列表中看到 docker.service
例如:启动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
docker update --restart=always 容器id或name
本编文章实操的是 Linux安装Docker,安装完成就该实际应用到项目了。Docker如何搭建和部署PHP请参考我写的另外一篇文章
Docker搭建PHP运行环境_Super乐的博客-CSDN博客
制作Docker镜像,还没来得及整理,后续待完善.....