【SpringCloud学习笔记】Docker(上篇)

Docker

1. 前置准备

在学习Docker之前我们需要具备以下环境:

  • Linux云服务器 / 虚拟机
  • 安装并配置Docker环境(命令行中输入docker -v能够显示对应版本证明安装成功)

2. 快速入门

要求:
我们先来尝试使用Docker创建MySQL服务,命令如下:

docker run -d \
--name mysql \
-p 3306:3306 \
-e TZ=Asia/Shanghai \
-e MYSQL_ROOT_PASSWORD=123 \
mysql

其中各个选项的含义如下:

  • docker run -d:表示创建并运行一个容器,并且使用后台进程的方式运行(daemon)
  • --name:给该容器取一个名称,只要不与别的容器名冲突即可
  • -p:指定端口映射,即将宿主机端口映射到容器内部端口,格式为:宿主机端口:容器内端口
  • -e TZ=Asia/Shanghai-e即environment环境,格式为:-e key=value,此处设置时区
  • -e MYSQL_ROOT_PASSWORD=123:此处表示设置MySQL的默认密码
  • mysql:设置镜像名称,docker就会根据这个名字来搜索并下载镜像,格式为REPOSITORY:TAG,例如mysql:8.0,未指定TAG默认为latest

如果我们需要安装其他软件,则可以到DockerRepository网站中进行查找与配置

Docker仓库网站:https://hub.docker.com/

3. 常见命令

下面我们就来介绍一下Docker的常见命令,本次只介绍部分常用命令,更多更全的命令请查阅官方文档:

Docker官方文档:https://docs.docker.com/

3.1 命令介绍

命令 说明
docker push 向远程仓库推送镜像
docker pull 拉取镜像
docker images 查看本地镜像
docker rmi 删除本地镜像
docker save 保存镜像到本地压缩文件
docker load 加载本地压缩文件到镜像
docker run 创建并运行容器
docker start 启动已经关闭的容器
docker stop 停止正在运行的容器
docker restart 重新启动容器
docker rm 删除指定容器
docker logs 查看容器日志
docker ps 查看容器进程运行情况
docker exec 进入容器
docker inspect 查看容器详细信息

上述常见命令及其关系我们可以用下图表示:

3.2 实操练习

下面我们就通过一个案例来练习上述命令:
image.png

  1. 拉取Nginx镜像:

命令:docker pull nginx

  1. 查看本地镜像列表:

命令:docker images
image.png

  1. 创建并运行Nginx容器:

命令:

docker run -d \
--name nginx \
-p 80:80 \
nginx

image.png

  1. 查看容器:

命令:docker inspect nginx

  1. 停止容器:

命令:docker stop nginx
image.png

  1. 再次启动容器:

命令:docker restart nginx
image.png

  1. 进入Nginx容器:

命令:docker exec -it nginx bash
image.png

  1. 删除容器:

命令:docker rm -f nginx
image.png

3. 数据卷

我们先来看一个需求,体会数据卷的必要性:
image.png
我们可以查阅docker hub上关于nginx的镜像,得知html所在目录为:/usr/share/nginx/html,此时我们使用命令docker exec -it nginx bash进入容器,使用vim编辑器打开index.html发现报错:找不到命令vim,这是因为docker模拟运行环境时只会模拟必要的,因此vim等编辑器不是自带的!这时有两种解决方法:

  1. 安装vim编辑器(不推荐×)
  2. 借助数据卷

**数据卷:**docker中的volumn(数据卷)是一个虚拟目录,是宿主机目录与容器内部目录映射的桥梁
数据卷相关命令:

命令 说明
docker volume create 创建数据卷
docker volume ls 查看所有数据卷
docker volume rm 删除指定数据卷
docker volumn inspect 查看某个具体数据卷
docker volume prune 清除数据卷

注意:已经创建好的容器是无法挂载数据卷的,因此我们需要在创建容器即(docker run)时指定挂载目录,如果对应数据卷不存在则自动创建!

挂载数据卷命令:

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

image.png
此时我们可以查看挂载信息:docker volume inspect nginx
image.png
此时宿主机目录( /var/lib/docker/volumes/html/_data)与容器内部目录(/usr/share/nginx/html)就建立了双向绑定关系,修改宿主机目录下的文件,容器内文件同样生效!

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-06-09 02:52:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-09 02:52:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-09 02:52:03       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-09 02:52:03       20 阅读

热门阅读

  1. 代码杂谈 之 pyspark如何做相似度计算

    2024-06-09 02:52:03       13 阅读
  2. B3928 [GESP202312 四级] 田忌赛马

    2024-06-09 02:52:03       9 阅读
  3. 发布处理方案 —— 前台项目构建与发布处理

    2024-06-09 02:52:03       9 阅读
  4. Tomcat 启动闪退问题解决方法

    2024-06-09 02:52:03       6 阅读
  5. Linux统计目录和文件数目

    2024-06-09 02:52:03       8 阅读
  6. 华为OD技术面试-最小异或-2024手撕代码真题

    2024-06-09 02:52:03       11 阅读
  7. Go理论-面试题

    2024-06-09 02:52:03       7 阅读
  8. 【LC刷题】DAY02:24 19 142

    2024-06-09 02:52:03       8 阅读
  9. 二叉树的前序便利,中序遍历,后序遍历

    2024-06-09 02:52:03       9 阅读
  10. AI学习指南机器学习篇-决策树基本原理

    2024-06-09 02:52:03       11 阅读
  11. 利用Pandas进行数据清洗与过滤:Python实战指南

    2024-06-09 02:52:03       11 阅读
  12. 树莓派【Raspberry Pi-64位】3b+,Pi4J 2.0入门

    2024-06-09 02:52:03       10 阅读
  13. Vue3相关语法内容,组件传值

    2024-06-09 02:52:03       7 阅读