docker快速入门

docker出现的原因

使用linux部署项目的时候,最大的麻烦是软件的安装和部署步骤复杂,容易出错。项目部署上线的时候大概有三种方式:

1.原生部署:什么环境软件都自己手动安装,还需要自己配置环境变量等等问题,非常麻烦(不推荐)

2.宝塔部署:使用宝塔面板完成部署,与第一种方式相比,轻松了很多。

3.docker部署:最方便,直接拉取镜像,创建并运行容器,忽略系统环境差异。(我个人就是因为要部署项目上线,原生部署太麻烦,宝塔面板又打不开,所以学习了docker)

docker的几大优势:简化配置,代码流水线管理,提高开发效率,隔离应用,整合服务器 ,快速部署。

概念介绍

镜像:我们用docker安装应用时,docker就会先去下载镜像,将应用所需的函数库、依赖、配置等与应用一起打包得到的就是镜像

容器:为每个镜像的应用进程创建的隔离运行环境就是容器

镜像仓库:存储和管理镜像的服务就是镜像仓库,DockerHub是目前最大的镜像仓库,其中包含各种常见的应用镜像

如下图,当我们在本地执行docker run命令时,docker server就会去远程的镜像仓库下载镜像,镜像拉下来后使用docker images命令可以查看本地的镜像(后面会讲到),最后运行的是由镜像创建出来的容器。

image-20231022171229255

部署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是指容器的端口,如下图,由于我们不能直接访问容器的端口,所以需要先访问主机的端口,然后才能映射到容器的端口。

image-20231022184537239

镜像命名规范

镜像名称一般分两部分组成:[repository]:[tag]。

其中repository就是镜像名,tag是镜像的版本。在没有指定tag时,默认是latest,代表最新版本的镜像

例如mysql的5.7版本的镜像是这么写的

image-20231022184805117

posted @ 2023-10-22 18:53  蜀道,难  阅读(65)  评论(0编辑  收藏  举报