Docker是一个用来快速构建、运行和管理应用的工具。
Docker技术能够避免对服务器环境的依赖,减少复杂的部署流程,有了Docker以后,可以实现一键部署,项目的部署如丝般顺滑,大大减少了运维工作量。
即使你对Linux不熟悉,你也能轻松部署各种常见软件、Java项目。
学习目标:
要想让Dockert帮我们安装和部署软件,首先要保证你的机器上有Docker,我们可以在CentOS的虚拟机中安装Docker。
Docker安装的官方文档:
Install Docker Engine on CentOS | Docker DocsLearn how to install Docker Engine on CentOS. These instructions cover the different installation methods, how to uninstall, and next steps.https://docs.docker.com/engine/install/centos/首先使用SSH客户端连接到我们的Linux虚拟机:
首先如果系统中已经存在旧的Docker,则先卸载:
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
首先要安装一个yum工具
yum install -y yum-utils
安装成功后,执行命令,配置Docker的yum源:
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
docker image命令:用于列出本地系统中存在的Docker镜像!
Docker也是一个服务,需要启动起来!
# 启动Docker
systemctl start docker
# 停止Docker
systemctl stop docker
# 重启
systemctl restart docker
# 设置开机自启
systemctl enable docker
# 执行docker ps命令,如果不报错,说明安装启动成功
docker ps
输入systemctl enable docker命令,让Docker开启自启:
阿里云-计算,为了无法计算的价值阿里云——阿里巴巴集团旗下公司,是全球领先的云计算及人工智能科技公司之一。提供免费试用、云服务器、云数据库、云安全、云企业应用等云计算服务,以及大数据、人工智能服务、精准定制基于场景的行业解决方案。免费备案,7x24小时售后支持,助企业无忧上云。https://www.aliyun.com/
1. 在首页的产品中,找到阿里云的容器镜像服务:
# 创建目录
mkdir -p /etc/docker
# 复制内容,注意把其中的镜像加速地址改成你自己的
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://xxxx.mirror.aliyuncs.com"]
}
EOF
# 重新加载配置
systemctl daemon-reload
# 重启Docker
systemctl restart docker
步骤一:先检测系统是否自带安装mysql:yum list installed | grep mysql
步骤二:删除系统自带的MySQL及其依赖(防止后面安装发生冲突)
而我们利用Docker来安装一个MySQL软件,仅仅需要一步即可:
首先需要先停掉虚拟机中的MySQL,确保你的虚拟机已经安装Docker,且网络开通的情况下,执行下面的命令即可安装Docker:
docker run -d \
--name mysql \
-p 3306:3306 \
-e TZ=Asia/Shanghai \
-e MYSQL_ROOT_PASSWORD=123 \
mysql
MySQL安装完毕,通过任意客户端工具即可连接到MySQL!
大家可以发现,当我们执行命令后,Docker做的第一件事情,是去自行搜索并下载了MySQL,然后会自动运行MySQL,我们完全不用插手,非常方便~!
而且,这种安装方式你完全不用考虑运行的操作系统环境,它不仅在CentOS系统是这样,在Ubuntu系统、MacOS系统,甚至是安装了WSL的Windows下,都可以使用这条命令来安装MySQL。
要知道,不同操作系统下的安装包、运行环境都是不相同的,如果是手动安装,必须手动解决安装包不同、环境不同、配置不同的问题。
而使用Docker,这些完全不要考虑,就是因为Docker会自行搜索并下载MySQL,注意:这里下载的不是安装包,而是镜像!镜像中不仅包含了MySQL本身,还包含了其运行所需要的环境、配置、系统级函数库,因此它在运行时就有自己独立的环境,就可以跨系统运行,也不需要手动再次配置环境了,这套独立运行的隔离环境我们称为容器。
说明:
因此,Docker安装软件的过程,就是自动搜索下载镜像,然后创建并运行容器的过程!·
Docker会根据命令中的镜像名称自动搜索并下载镜像image,那么问题来了,它是去哪里搜索和下载镜像的呢?这些镜像又是谁制作的呢?
https://hub.docker.com/https://hub.docker.com/基本上我们常用的各种软件都能在这个网站上找到,我们甚至可以自己制作镜像上传上去。
像这种提供存储、管理Docker镜像的服务器,被称为DockerRegistry,可以翻译为镜像仓库。
DockerHub网站是官方仓库,阿里云、华为云会提供一些第三方仓库,我们也可以自己搭建私有的镜像仓库。
官方仓库在国外,下载速度较慢,一般我们都会使用第三方仓库提供的镜像加速功能,提高下载速度,而企业内部的机密项目,往往会采用私有镜像仓库。
Docker是做什么的?
- Docker可以帮助我们下载应用镜像,创建并运行镜像的容器,从而快速部署应用。
什么是镜像?
- 将应用所需的函数库、依赖、配置等与应用一起打包得到的就是镜像。
什么是容器?
- 为每个镜像的应用进程创建的隔离运行环境就是容器。
什么是镜像仓库?
存储和管理镜像的服务就是镜像仓库。
- DockerHub是目前最大的镜像仓库,其中包含各种常见的应用镜像。
利用Docker快速的安装了MySQL,非常的方便,不过我们执行的命令到底是什么意思呢?
docker run -d:创建并运行一个容器(容器是一个隔离环境),-d则是让容器以后台进程运行
--name mysql:-name给容器命名,给容器起个名字叫mysql,方便我们去区分不同的容器,名字必须唯一,当然也可以叫别的
-p 3306:3306:设置端口映射
docker inspect 容器名称:该命令将返回JSON格式的容器的详细信息,例如容器的ID、名称、状态、IP地址等。
-e TZ=Asia/Shanghai
-e MYSQL_ROOT_PASSWORD=123
mysql:设置镜像名称 或 指定运行的镜像名称,Docker会根据这个名字搜索并下载镜像
docker ps是一个Docker命令,用于列出正在运行的Docker容器的信息:
如果需要显示所有容器(包括已经停止的容器),可以使用docker ps -a命令!