Docker 容器使用

罗大富 BigRich大约 3 分钟Docker

容器是从镜像创建的运行实例。它可以被启动、停止、删除。每个容器都是相互隔离的、保证安全平台。可以把看做一个简易版的 Linux 环境,包括 root 用户权限、进程空间、用户空间和网络空间和运行在其中的应用程序。

Docker 利用容器来运行应用,镜像是只读的,容器在启动的时候创建一层可写层作为最上层。

容器相关命令

  1. 查看容器
docker ps     # 查看正在运行的容器
docker ps -a  # 查看所有容器
  1. 创建并启动容器
docker run 参数

参数说明:

  • -i:保持容器运行。通常与-t 同时使用。加入it这两个参数后,容器创建后自动进入容器中,退出容器后,容器自动关闭;
  • -t:为容器重新分配一个伪输入终端,通常与-i同时使用;
  • -d:以守护(后台)模式运行容器。创建一个容器在后台运行,需要使用docker exec 进入容器。退出后,容器不会关闭;
  • -it 创建的容器一般称为交互式容器,-id 创建的容器一般称为守护式容器;
  • --name:为创建的容器命名。
  1. 进入容器
docker exec 参数  # 退出容器,容器不会关闭
  1. 停止容器
docker stop 容器名称
  1. 启动容器
docker start 容器名称
  1. 删除容器:如果容器是运行状态则删除失败,需要停止容器才能删除
docker rm 容器名称
  1. 查看容器信息
docker inspect 容器名称

数据卷

我们知道,Docker 是把应用和环境一起打包成一个镜像发布出去。

如果我们的数据都在容器中,那么我们把容器删除之后,数据就会丢失。所以我们想要数据持久化。

假如我们搞了个 MySQL 容器,如果一不小心将 MySQL 容器删除了,就会很危险。所以我们需要 MySQL 的数据可以存储在本地。

于是基于上述两种需求,我们就出现了容器数据卷的技术,容器之间有一个数据共享的技术。

Docker 容器产生的数据同步到本地。说白了就是目录的挂载,将我们容器的目录挂载到宿主机中。

数据卷的特点:

  1. 数据卷是宿主机中的一个目录或文件;
  2. 当容器目录和数据卷目录绑定后,对方的修改会立即同步;
  3. 一个数据卷可以被多个容器同时挂载;
  4. 一个容器也可以被挂载多个数据卷。

数据卷的作用:

  1. 容器数据持久化;
  2. 外部机器和容器间接通信;
  3. 容器之间数据交换

配置数据卷

创建启动容器时,使用 -v 参数 设置数据卷

docker run ... -v 宿主机目录(文件):容器内目录(文件)

注意事项:

  1. 目录必须是绝对路径;
  2. 如果目录不存在,会自动创建;
  3. 可以挂载多个数据卷;

如果我们想实现上图的多个容器溶蚀挂载一个数据卷,分为以下两步:

  1. 创建启动 c3 数据卷容器,使用 -v 参数 设置数据卷
docker run -it --name=c3 -v /volume ubuntu:20.04 /bin/bash
  1. 创建启动 c1 c2 容器,使用 --volumes-from 参数 设置数据卷
docker run -it --name=c1 --volumes-from c3 ubuntu:20.04 /bin/bash
docker run -it --name=c2 --volumes-from c3 ubuntu:20.04 /bin/bash
上次编辑于:
贡献者: Luo