三大要素
仓库 镜像 容器
镜像即模板
容器即为一个模板的实例
docker常用命令
-
docker version
-
docker info
更加详细的信息 -
docker --help
镜像命令
- docker images
docker images -a
查看所有镜像
docker images -q
查看所有的镜像id - docker search [name]
查找指定镜像(从docker hub上查找)
docker search -s 30 tomcat 查询超过30stars的项目 - docker pull [name]
拉取镜像 - docker rmi [name]
删除某个镜像,-f 强制删除
删除全部镜像 docker rmi -f $(docker images -qa) - docker commit
提交自定义镜像
-m ="描述信息" -a="作者" 目标镜像名:标签名
容器命令
- docker run OPTIONS [name]
根据镜像运行实例容器
--name "容器新名字"
-v 宿主机文件:容器文件 数据卷自定义
--volumes-from 容器id 共享某一容器的数据卷(文件名相同的为共享文件)
-d 后台运行容器,也即启动守护式容器
-i 以交互式方式运行容器,通常与-t结合使用
-t 为容器启动一个伪输入终端
-P 随机端口映射
-p 宿主机port:docker端口 端口映射 - docker ps
查看docker 正在运行的容器
-l 最近运行的容器
-n 3 最近3次运行的容器
-a 当前运行的和过往运行的
-q 只显示容器编号
exit 容器停止退出
ctr+p+q 容器不停止退出 - docker stop
温柔的停止 - docker kill
强制停止 - docker start
参数 --restart=always
--dns xxx指定dns服务器
--h xxx指定主机名
--add-hostname host:ip 自定义域名解析
--rm 停止时,自动删除
启动容器
- docker rm 容器ID
-f强制删除 -v删除持久化的数据卷
$(docker ps -qa)一次性删除全部容器 或者 docker ps -qa | xargs docker rm -f - docker logs -ft --tail 容器id (-f追加 -t时间戳)
查看容器日志 - docker top 容器ID
查看容器内部细节 - docker inspect 容器ID
查看容器内部细节 - docker attach 容器id
再次进入docker容器 - docker cp 容器id:容器路径 主机路径
将容器内的数据拷贝到宿主机下 - docker history 镜像ID
镜像生成的历史(dockerFile加载过程) - docker exec 容器id 执行参数
docker exec -ti [name] /bin/bash
让容器在终端执行对应命令 - 重命名容器名
docker rename old容器名 new容器名
容器转换为镜像
1. 容器>镜像
docker commit [name或容器id] -t 新镜像xxx
2. DockerFile
docker build -t xxx . .代表从当前目录寻找DockerFile
DockerFile命令规定最多不超过128个
docker网络模式
docker port [容器id] 查看映射关系
docker network ls 查看所有容器网络类型
主要通过网桥和NAT模式
网桥解决的是容器之间的通讯 网络通过namespace进行隔离
nts(主机名和域名) ipc pid mnt(挂载点隔离 不同的根目录) network user
NAT解决的时外网和容器之间的通讯 https://blog.csdn.net/beanewself/article/details/78317626
docker数据存储
数据卷
数据卷独立于容器的联合文件系统之上,是宿主机文件与容器的相互绑定
- bind mount volume 人为绑定的数据卷,可以绑定宿主机下的任意文件
- docker managed volume 人为绑定后,docker自己管理
/var/lib/docker/volumes
删除容器后,管理卷不会自动删除
存储驱动
存储驱动是什么?
管理各层文件
- device mmaper
- btrfs
- overlayfs 性能优异 稳定 第一选择
网友评论