docker 基础主要由镜像,容器,网络,卷组成。当然还有高级的k8s 服务编排等。本文只整理docker基础概念,docker服务的运行,维护等后续在讨论。
docker 镜像一般涉及到镜像的拉取,推送,存储等。好比Java类的格式,存储,文件格式等。
docker registry: docker镜像仓库,用于存储docker images, 可以通过docker login ,docker pull, docker push 等命令获取/提交镜像。 其中docker Hub是一个比较特殊的docker registry,是docker管理的公共仓库, 默认docker pull/push 都是从这个仓库获取
构建镜像的方式:
docker images 备份导入通过tar压缩格式文件实现
##导出busybox镜像 docker save --output busybox.tar busybox ##导出为gz格式 docker save myimage:latest | gzip > myimage_latest.tar.gz ## 导入镜像 docker load --input fedora.tardocker 容器,接触过都docker的人,这个应该是接触最多的了。 容器有自己的生命周期。
## docker run 启动docker容器,或者交互式运行, 具体可参考 https://www.runoob.com/docker/docker-run-command.html docker run -itd --name centos-test centos:centos7 ## 查看当前活跃的容器 docker ps ## 查看所有的容器 docker ps -a启动暂停重启命令 start/stop/restart
其他命令,可参考https://www.runoob.com/docker/docker-command-manual.html
docker volume存在的价值是,将docker容器运行过程中的产生的数据做持久化。 比如数据库的数据,就需要使用到volume. 优点:
剥离docker 容器文件格式和数据格式 多个容器之间共享数据 持久化数据,不受容器删除影响
docker主要有2种volume技术
bind-mount 绑定挂载技术, 使用 -v 宿主机目录:容器目录, 还有一种mount的技术也属于此范围,只是命令不太一样 docker manage volume, 由docker容器自动管理, 这部分卷会再/var/lib/docker/<容器id>的方式生成
##docker 管理卷的方式 docker run --name box1 -it -v /data busybox ##docker 绑定卷的方式, docker run --name box2 -it -v /docker/data:/data busybox有很多通过组合命令的方式清除的
上述这些命令具体参考docker 官网: https://docs.docker.com/config/pruning/