docker出现的原因
使用linux部署项目的时候,最大的麻烦是软件的安装和部署步骤复杂,容易出错。项目部署上线的时候大概有三种方式:
1.原生部署:什么环境软件都自己手动安装,还需要自己配置环境变量等等问题,非常麻烦(不推荐)
2.宝塔部署:使用宝塔面板完成部署,与第一种方式相比,轻松了很多。
3.docker部署:最方便,直接拉取镜像,创建并运行容器,忽略系统环境差异。(我个人就是因为要部署项目上线,原生部署太麻烦,宝塔面板又打不开,所以学习了docker)
docker的几大优势:简化配置,代码流水线管理,提高开发效率,隔离应用,整合服务器 ,快速部署。
概念介绍
镜像:我们用docker安装应用时,docker就会先去下载镜像,将应用所需的函数库、依赖、配置等与应用一起打包得到的就是镜像
容器:为每个镜像的应用进程创建的隔离运行环境就是容器
镜像仓库:存储和管理镜像的服务就是镜像仓库,DockerHub是目前最大的镜像仓库,其中包含各种常见的应用镜像
如下图,当我们在本地执行docker run命令时,docker server就会去远程的镜像仓库下载镜像,镜像拉下来后使用docker images命令可以查看本地的镜像(后面会讲到),最后运行的是由镜像创建出来的容器。
部署mysql
说明:docker的安装和配置可以参考我这两篇博客:docker的安装,docker的修改镜像仓库
使用下面的命令即可安装mysql:
docker run -d \
--name mysql \
-p 3306:3306 \
-e TZ=Asia/Shanghai \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql
命令解读:
docker run :创建并运行一个容器,-d 是让容器在后台运行
--name mysql :给容器起个名字,必须唯一
-p 3306:3306 :设置端口映射
-e KEY=VALUE :是设置环境变量
mysql :指定运行的镜像的名字
其中,“-p 3306:3306”中的第一个3306是指主机的端口,第二个3306是指容器的端口,如下图,由于我们不能直接访问容器的端口,所以需要先访问主机的端口,然后才能映射到容器的端口。
镜像命名规范
镜像名称一般分两部分组成:[repository]:[tag]。
其中repository就是镜像名,tag是镜像的版本。在没有指定tag时,默认是latest,代表最新版本的镜像
例如mysql的5.7版本的镜像是这么写的
标签:容器,入门,部署,mysql,3306,镜像,docker,快速 From: https://www.cnblogs.com/malinyan/p/17780845.html