Docker类似于虚拟机可以环境隔离,但是比虚拟机效率要高很多启动也快很多。因为docker是基于一个kernel建多个容器,而虚拟机是虚拟化硬件。
2.Docke架构
Docker 的核心组件包括:
1. Docker 客户端 – Client
2. Docker 服务器 – Docker daemon
3. Docker 镜像 – ImageRegistry
4. Docker 容器 – Container
images相当于我们创建的类,而这些类可以实例化多个对象,对象就是我们的容器(每个容器都有自己独立的文件系统),docker run 指令可以运行容器。构建的镜像可以同步到远程仓库,也可以从官方远程仓库library或者阿里云用docker pull命令复制下来。
3.Docker安装
安装之后可以运行
Win10上Docker无法正常启动 出现install WSL2 kernel update的情况_LeungSr的博客-CSDN博客
systemctl docker start 启动docker
4.docker命令
官方命令参考Reference documentation | Docker documentation
4.1镜像命令
docker --herp 显示所有命令
docker info 显示docker 信息
docker version 显示docker的版本
docker images 显示有哪些镜像
docker images -a 显示所有镜像
docker images -q 只显示镜像id
镜像和git版本控制一样会有一个ID, tag 和仓库名
docker pull 镜像名 拉取镜像从官方(和git一样),默认last版本
docker pull 镜像名:tag名 拉取该镜像的指定版本
docker search 镜像名 在docker商店搜索镜像
docker rmi -f 镜像名字/镜像id 删除镜像
4.2容器命令
docker run --name=“容器名" -d 镜像名 /bin/bash 新建容器并启动,运行一个容器用bash环境
-d 后台运行 --name="容器名"设置容器名
docker run -it 镜像名 /bin/bash 用交互的方式运行
docker ps 查看正在运行的容器
docker ps -q 只显示容器id
docker ps -a 查看所有运行的容器(也有运行过的)
exit 退出容器
docker rm 容器id 删除容器(正在运行的容器是不能删除的)
docker rm -f 容器id 强制删除容器
docker rm $(docker ps -aq) 删除所有容器
docker start 容器id 启动容器
docker restart 容器id 重启容器
docker stop 容器id 停止容器
docker kill 容器id 强迫停止容器
ctrl + p + q 退出容器依然运行
4.3其他命令
docker exec -it 容器id /bin/bash进入这个容器并新建一个控制台
docker attach 容器id 进入这个容器正在运行的控制台
docker cp 容器id/home/root/file /home
拷贝容器下用户目录的文件到系统home下
4.4commit镜像
dockder commit -a="作者" -m="提交信息" 容器id 目标镜像名:tag
提交之后就可以用docker images查看自己提交的镜像的。就像虚拟机的快照,git的代码提交
5.容器数据卷
创建一个容器后,为了防止容器删了数据就没了。可以将容器的一个路径挂载到宿主机下。这样容器删了数据还在,容器关了也可以在宿主机编辑文件,容器内编辑文件也可以同步到宿主机
5.1指定路径挂载
docker run -it -v /宿主机路径:容器内路径 镜像名(-v === volum)
在宿主机可以看到映射(docker inspect 容器id)
5.2具名挂载
docker run -it -v 具名:容器内路径 镜像名(具名前不要加斜杠要不然就是指定路径)
docker volum inspect 具名------------查看具名挂载具体路径
5.3匿名挂载
docker run -it --name 容器名 容器内路径 镜像名(不指定宿主机路径)
docker volum list --------------查看所有卷
5.4数据容器卷
6.DockerFile
docker 可以通过dockerfile文件自动生成镜像,步骤如下
Docker build -f DockerFile -t 镜像名:tag .
#指令都要大写 FROM ubuntu ECHO “fasfas” #匿名挂载 VOLUM ["one", two] CMD /bin/bash
6.1 基础命令
FROM 基础镜像
CONTAINER 作者
ADD 拷贝文件到镜像
RUN 启动镜像
CMD 运行命令
ENTROPINT 运行命令
CP 拷贝文件到镜像
EXPOSE 暴露端口
WORKDIR 指定工作目录(构建容器后默认的目录)
VOLUME 挂载镜像
ENV 设置环境变量
docker history 镜像id 显示镜像制作过程
7.提交镜像
docker login -u 用户名 先登录自己的docker hub账户
docker push 镜像名:tag 同步到自己的远程仓库
docker save 镜像压缩包 打包自己的镜像备份
docker load 压缩包 加载打包好的镜像



