Docker 的简单基础知识
Docker 概念
- Docker是一个开源的应用容器引擎
- Go语言实现
- Docker可以让开发者打包他们得应用以及依赖到一个轻量级、可移植的容器中,然后发布到linux机器上
- 容器完全使用沙箱机制,相互隔离
- 容器性能开销低,启动快
Docker命令
服务相关命令
-
启动docker服务
systemctl start docker
-
停止docker服务
systemctl stop docekr
-
重启docker服务
systemctl restart docker
-
查看docker服务状态
systemctl status docker
-
开机启动docker服务
systemctl enable docker
Docker镜像相关命令
-
查看镜像(本地)
docker images
- REPOSITORY 镜像名称
- TAG 镜像版本号
- IMAGE_ID 镜像ID,一个标识符
- CREATED 创建时间
- SIZE 大小
-
搜索镜像 到docker hub上查
docker search [镜像名]
- STARS 类似github上的star
- OFFICAL OK 表示是官方维护的
- AUTOMATED OK表示是自动化构建的,与github这样的网站相关,源码改动后,docker hub上自动更新镜像
-
拉取镜像
docker pull [镜像名] [版本号]
不写版本号,默认最新
-
删除镜像
docker rmi [IMAGE_ID]
docker rmi [REPOSITORY:TAG]
docker rmi
docker images -q
全部删除
Docker 容器相关命令
-
查看容器
docker ps 查看正在运行的容器
docker ps -a 查看所有容器,包括挂掉的
-
创建容器
docker run [参数]
- -i:保持容器运行,通常与-t同时使用,假如it两个参数后,容器创建后自动进入容器中,退出容器后,容器自动关闭
- -t:为容器重新分配一个伪输入终端,通常与-i一起使用
- -d:以守护进程模式运行容器,创建一个容器在后台运行,需要使用docker exec进入容器,推出后,容器不关
- -it 创建的是交互式容器,-id创建的是守护式容器
- --name 为创建的容器命名。
-
进入容器
docker exec 参数
-
启动容器
docker start
-
停止容器
docker stop 容器名
docker stop
docker ps -aq
-
删除容器
如果是运行状态则删除失败
docker rm 容器名
docker rm
doccker ps -aq
-
查看容器信息
docker inspect 容器名
Docker 的数据卷
- Docker容器删除后,容器中的数据就不在了
- Docker容器如何和外部机器直接交换文件?
- 容器之间如何进行数据交互
由这些问题,引出数据卷
数据卷的概念及作用
- 数据卷是宿主机中的一个目录或文件
- 当容器目录和数据卷目录绑定后,对方的修改会立即同步
- 一个数据卷可以被多个容器同时挂载,实现容器间通信
- 一个容器可以挂载多个数据卷
- 作用:
- 容器数据持久化
- 外部机器与容器间通信
- 容器之间数据交换
配置数据卷
-
创建启动容器时,使用-v参数 设置数据卷
docker run -v 宿主机目录/文件:容器内目录/文件
-
注意事项:
- 目录必须是绝对路径
- 目录不存在,自动创建
- 可挂载多个
-
还有匿名挂载方式,就是不指定宿主机目录,只指定容器内目录,
所有的docker容器卷,在没有指定目录的情况下都是保存在 /var/lib/docker/volumes/****/_data
配置数据卷容器
数据卷容器就是,一个容器以挂载数据卷,其他容器通过挂载这个容器实现数据共享,挂载数据卷的容器称为数据卷容器,删除父容器后,子容器内数据仍保留
- 多容器如何进行数据交换?
- 多个容器挂载同一个数据卷
- 数据卷容器
用 --volumes-from [父容器名] 代替-v