您的位置:首页 > 新闻 > 热点要闻 > 永春网页设计_名字设计网站_西安seo哪家好_百度搜索资源平台token

永春网页设计_名字设计网站_西安seo哪家好_百度搜索资源平台token

2025/3/13 5:41:10 来源:https://blog.csdn.net/hacker_51/article/details/142525696  浏览:    关键词:永春网页设计_名字设计网站_西安seo哪家好_百度搜索资源平台token
永春网页设计_名字设计网站_西安seo哪家好_百度搜索资源平台token

目录

初始入门

镜像命名规范

常用dockers命令

Linux系统自定义运行命令

进入并编写自定义命令配置

使用 别名 alias 自定义命令

注意重载我们的配置,使其生效

数据卷

提示

入门应用例子

匿名卷

-v 容器数据卷挂载

应用例子

第一步:创建对应的本地挂载目录

第二步:将配置文件以及初始化sql脚本放到我们对应的挂载目录中

第三步:创建并运行指定挂载docker命令


初始入门

例子:docker 安装Mysql

docker run -d \--name mysql \-p 3306:3306 \-e TZ=Asia/Shanghai \-e MYSQL_ROOT_PASSWORD=123456mysql
  • docker run :  创建并运行一个容器
  • -d : 是让容器在后台运行
  • --name ___ :  给容器起别名,必须唯一,方便区分不同容器
  • -p (外部系统端口):(容器暴露端口)   :  设置外部系统与容器端口之间的映射
  • -e KEY=VALUE:是设置环境变量
  • 最后结尾非关键字字符串 mysql :指定运行的镜像名字

镜像命名规范

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

  • 其中repository就是镜像名
  • tag是镜像的版本

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

常用dockers命令

docker ps : 查看当前运行的 docker 容器

docker ps - a: 查看所有的 docker 容器

docker ps -q:查看所有正在运行的 docker 容器ID

docker stop [容器名称或者容器ID]:停止对应的容器

docker stop $(docker ps -q):停止所有正在运行的容器 ID

docker start [容器名称或者容器ID]:启动对应的容器

docker logs [容器名称或者容器ID]:查看当前容器的运行日志

docker logs [容器名称或者容器ID] - f :查看并跟踪当前容器的运行日志

docker exec -it [容器名称或者容器ID] bash:进入对应的docker容器

  • -it                 表示 交互的意思
  • bash            表示 使用 bash 命令进行交互

docker exec -it [容器名称或者容器ID] [进入容器后执行的命令]:进入对应的docker容器并执行相应的命令

  • 例如:docker exec -it mysql mysql -uroot -p:进入mysql命名的容器,并执行mysql -uroot -p命令

docker rm [容器名称或者容器ID]:删除对应的容器

docker rm [容器名称或者容器ID] -f:强制删除容器

docker inspect [容器名称或者容器ID]:查看容器详情

Linux系统自定义运行命令

在Linux系统中,自定义运行命令可以通过多种方式实现。

在这里我简单的介绍一个简易的自定义命令。

进入并编写自定义命令配置

vim ~/.bashrc

成功进入自定义命令配置,我们可以发现平时曾用到的常用命令 ls,实际上也是内部系统自定义的一个命令。

使用 别名 alias 自定义命令

在底部加上 自己的自定义的命令

保存并退出     :wq

注意重载我们的配置,使其生效

执行重载我们配置的命令

source ~/.bashrc

测试我们自定义命令是否成功

dis

结果执行命令成功,说明我们自定义的命令生效了。

数据卷

数据卷(volume)是一个虚拟目录,是容器内目录与宿主机目录之间映射的桥梁。

数据卷命令语法:docker volume  [数据卷相关命令]

  • create:创建数据卷
  • ls: 查看所有数据卷
  • rm:删除指定数据卷
  • inspect [挂载数据卷的别名] :查看某个数据卷的详情
  • prune:清除数据卷
  • --help:docker volume 命令的帮助文档

提示

  • 在执行docker run命令时,使用参数   -v [数据卷]:[容器内目录]    可以完成数据卷挂载
  • 当创建容器时,如果挂载了数据卷且数据卷不存在,会自动创建数据卷
  • 注意!!!数据挂载只能在创建容器时进行挂载,如果容器已经创建了,无法再进行挂载

入门应用例子

使用 nginx 挂载,修改 nginx中的 index.html,并添加一些文件,映射到docker容器中。

通过官方文档可以得知 nginx容器中 index.html 的路径在

/usr/share/nginx/html

创建 nginx 容器 并挂载 index_html

docker run -d --name nginx -p 8081:80 -v index_html:/usr/share/nginx/html nginx

通过 数据卷命令 ls 查看是否成功挂载我们的 index_html

docker volume ls

最后显示结果:

出现了我们的挂载卷的别名说明挂载成功。

通过 数据卷命令 inspect 查看我们挂载的数据卷详细情况

docker volume inspect index_html

最后运行结果

[{"CreatedAt": "2024-10-20T00:22:53+08:00","Driver": "local","Labels": null,"Mountpoint": "/var/lib/docker/volumes/index_html/_data","Name": "index_html","Options": null,"Scope": "local"}
]
  • CreatedAt:这个字段表示卷被创建的时间。

  • Driver:这个字段表示用于创建和管理这个卷的驱动程序。在这个例子中,驱动程序是 "local",这是 Docker 默认的卷驱动程序,用于本地文件系统。

  • Labels:这个字段包含了与卷关联的键值对标签。在这个例子中,Labelsnull,表示没有设置任何标签。

  • Mountpoint:这个字段提供了卷在宿主机上的挂载点路径。在这个例子中,卷被挂载在 /var/lib/docker/volumes/index_html/_data

  • Name:这个字段表示卷的名称。在这个例子中,卷的名称是 "index_html"。

  • Options:这个字段包含了创建卷时指定的额外选项。在这个例子中,Optionsnull,表示没有指定任何额外选项。

  • Scope:这个字段表示卷的作用域。"local" 表示这个卷仅在创建它的 Docker 守护进程上可用。

运行成功,查看到我们挂载卷的详细结果,通过 Mountpoint 我们可以得知在宿主机中映射到docker容器中的文件路径。

我们运行以下命令去查看我们映射文件是否存在

cd /var/lib/docker/volumes/index_html/_data && ll

运行结果:

说明我们映射成功,通过查看index.html发现文件内容与我们的nginx默认的index文件内容是一致的。

通过修改index文件,我们可以发现

通过映射发生了变化。

同时我们添加的文件也可以成功映射添加上去访问成功。

匿名卷

在Docker中,匿名卷是一种特殊类型的卷,它在运行容器时自动创建,并且没有与之关联的命名卷。

正如我们初始入门中使用 docker run 中并没有指定挂载卷,我们创建的容器会根据容器内容所需要指定挂载卷时,自动创建并分配映射指定容器需求的卷。

我们可以通过 docker inspect [容器名称或者容器ID] 进行查看详细的信息

例如,我们运行以下命令查看mysql容器详情

docker inspect mysql
  • NetworkSettings:关于网络设置,我们可以看到宿主机之前的端口映射

  • Mounts:关于挂载卷的设置,我们可以看到映射的卷名特别长,这就是创建容器时自动生成匿名映射卷

-v 容器数据卷挂载

在运行Docker容器时,可以使用-v参数 来挂载一个卷。

语法:docker run -d -v [宿主机目录]:[容器内目录]  [容器名称或者容器ID]

  • 在执行docker run命令时,使用-v 本地目录:容器内目录 可以完成本地目录挂载
  • 本地目录必须以“/”或"./"开头,如果直接以名称开头,会被识别为数据卷而非本地目录,作为匿名卷
    • -v mysql:/var/lib/mysql        会被识别为一个数据卷叫mysql
    • -v ./mysql:/var/lib/mysql      会被识别为当前目录下的mysql目录

应用例子

根据官方镜像文档说明,总结并按照一下要求完成下面任务

  1. 挂载/home/angindem/mysql/data到容器内的/var/lib/mysql目录
  2. 挂载/home/angindem/mysql/init到容器内的/docker-entrypoint-initdb.d目录
  3. 挂载/home/angindem/mysql/conf到容器内的/etc/mysql/conf.d目录

在这里我们根据内容要求对应 -v 操作就可以了,下面是该任务的答案

第一步:创建对应的本地挂载目录
cd /home/angindem && mkdir mysql && cd mysql && mkdir data conf init
第二步:将配置文件以及初始化sql脚本放到我们对应的挂载目录中

配置 angindem.cnf 文件命令:

echo -e "[client]\ndefault_character_set=utf8mb4\n\n[mysql]\ndefault_character_set=utf8mb4\n\n[mysqld]\ncharacter_set_server=utf8mb4\ncollation_server=utf8mb4_unicode_ci\ninit_connect='SET NAMES utf8mb4'" > angindem.cnf

初始化的 sql 脚本,根据自己的具体情况来放置到 init 目录中,这里我放置我自己的。

第三步:创建并运行指定挂载docker命令
docker run -d  --name mysql3  -p 3318:3306   -e TZ=Asia/Shanghai  -e MYSQL_ROOT_PASSWORD=123456 -v /home/angindem/mysql/data:/var/lib/mysql -v /home/angindem/mysql/init:/docker-entrypoint-initdb.d -v /home/angindem/mysql/conf:/etc/mysql/conf.d  mysql

运行创建成功后,我们查看data目录可以发现,docker容器成功映射,并且初始化脚本blog也存在

cd /home/angindem/mysql/data && ls

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com