什么是Docker?【精通】
-
定义:是一个开源的容器引擎技术
-
使用场景:
- 在环境下进行环境的迁移
-
实现原理:
- 是一个分层复用的文件系统;每一层都是一个独立的软件;在最底层复用Linux系统的bootfs
-
组成(7部分):
-
仓库:用于存放镜像
-
本地守护进程:这个就是软件运行的进程
-
客户端:命令行中的docker 命令
-
镜像:就是一个制作好的操作系统文件,类似安装操作系统的iso
-
容器:就是镜像运行起来的运行态系统
-
docker-compose:用于批量管理容器的工具
-
dockerfile:使用脚本来制作镜像的工具
-
-
其它:
- 一台电脑可以运行多个容器,容器与容器之间是相互隔离的(既:每个容器使用的硬件资源相互不影响)
安装Windows版本
-
推荐:
- 开发用windows版本
- 测试和生产用linux
-
安装过程:
- 升级windows到10
- 开启wsl2子系统
- 安装docker的桌面版本
- 在cmd中输入 docker -v
如何修改Docker为国内镜像下载
-
/etc/docker/daemon.json
{"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn","https://hub-mirror.c.163.com"]} 复制代码
-
重启生效 systemctl restart docker
Docker守护进程/服务的操作命令【6个】【精通】
- systemctl start docker
- systemctl stop docker
- systemctl restart docker
- systemctl status docker
- systemctl enable docker
- systemctl disenable docker
Docker 镜像的操作命令【7个】【精通】
远程镜像
-
docker search 镜像关键字 搜索远程仓库中的镜像
- 也可以通过hub.docker.com/网站进行搜索
-
docker pull 镜像名称:镜像版本 下载镜像到本地
-
docker push 把本地的镜像上传到远程仓库
本地镜像
-
删: docker rmi 镜像名称:镜像版本
- docker rmi 主键
- 有容器则不能删除对应的镜像
-
查: docker images
- docker images -q 指查询镜像的主键
-
导入:docker load -i 压缩文件名称
-
导出: docker sava -o 压缩文件名称 镜像名称:版本
Docker容器的操作命令【10个】【精通】
-
docker ps 查看当前有那些运行的容器
- docker ps -a 查看当前本机有那些容器(运行和停止的容)
-
创建容器 docker run 参数 镜像名称:版本 启动后执行的命令
-
交互式:创建后立即进入容器,如果推出容器,则容器自动关闭(exit)
- docker run -it 镜像名称:版本 /bin/bash
-
守护式:创建容器后,不自动进入,容器在后台运行
- docker run -id 镜像名称:版本 启动后执行的命令
-
-
进入容器:docker exec -it 【容器的名称、容器的ID】 /bin/bash
-
删除容器:docker rm 【容器的名称、容器的ID】
- 运行中的容器不能删除
-
启动容器:docker start 【容器的名称、容器的ID】
-
停止容器:docker stop 【容器的名称、容器的ID】
-
重启容器:docker restart 【容器的名称、容器的ID】
-
查看容器详情:docker inspect 【容器的名称、容器的ID】
-
把容器提交成镜像:docker commit 【容器的名称、容器的ID】 镜像名称:版本
-
查看容器日志:docker logs -f 容器名称
Docker Run创建容器的参数【精通】
-
--name 指定容器的名称
-
-d 后台运行
-
-i 保持容器运行
-
-t 进入终端
-
-v 宿主机的绝对目录:容器内部绝对路径
-
-e 设置容器中的环境变量
-
-p 把容器的服务端口暴露给容器外面的应用访问 -p 宿主机的端口:容器内部端
- 一个容器可以暴露多个端口
-
--volumes-from=容器名称 复制容器的挂载目录给当前容器
数据卷【熟练】
- 宿主机:容器运行的操作系统
-
数据卷:是在宿主机上共享了一个目录文件
- 一个容器可以有多个数据卷
- 一个数据卷可以被多个容器挂载
使用docker安装软件的步骤【熟练】
-
查询镜像
-
下载镜像
-
运行容器 docker run
- 是否要映射端口给容器外访问?-p
- 是否需要持久化数据(配置文件、日志、数据)?-v
- 是否需要修改容器中默认的环境参数?-e
什么是Dockerfile【精通】
-
定义:是用脚本来指做镜像的工具
-
常用命令(8条):
- FROM,指定当前镜像的上一个镜像名称和版本
- COPY,拷贝宿主机上的文件到镜像中,不解压
- RUN 在镜像中执行一条linux命令,mkdir /home/123
- ADD,拷贝宿主机上的文件到镜像中,并且解压缩
- ENTRYPOINT,镜像运行启动后,执行的命令,不可覆盖
- CMD,镜像运行启动后,执行的命令,可覆盖
- ENV,设置环境变量
- EXPOSE,镜像运行成容器后,自动暴露的端口
-
使用
-
创建Dockerfile文件
-
在文件中编写镜像的操作命令
FROM centos:7 RUN yum install -y vim WORKDIR /user CMD /bin/bash 复制代码
-
编译成镜像
docker build -t 镜像名称:版本 . 复制代码
\
-