docker基本命令及使用实例详解
目录
- docker基本命令
- docker文件系统
- commit镜像
- 容器数据卷
- 具名和匿名挂载
- 初识Dockerfile commit
- Dockerfile 构建过程
- 发布自己的镜像
- docker网络
docker基本命令



docker文件系统

docker镜像为分层设计,相比于全量的虚拟机镜像,少了引导程序bootfs,共用系统内核rootfs。
配置层(容器层)
commit镜像
docker commit -a="" -m="" docker_id image_name:tag
类似于给镜像打个快照。
容器数据卷
解决问题 ->数据持久化 本质是目录挂载
使用数据卷
方式一: 直接使用命令挂载 -v
docker run -it -v 主机目录:容器内目录 image_id /bin/bash
具名和匿名挂载
# 匿名挂载 docker run -d -P --name nginx01 -v /etc/nginx(容器内路径) nginx # 具名挂载 docker run -d -P --name nginx02 -v xff-nginx:/etx/nginx(容器内路径) nginx root@hecs-39042:/var/lib/docker/volumes# ls 4ad594eee4e6115b2852f5fa952176c799e99bf1d0cadaee9c581085b8e38b6e d309f4a3ce1aa585673548ed4fd43a3aa7a5ca4f86a5a52b236d02428b991379 xff-nginx backingFsBlockDev metadata.db root@hecs-39042:/var/lib/docker/volumes# docker volume ls DRIVER VOLUME NAME local 4ad594eee4e6115b2852f5fa952176c799e99bf1d0cadaee9c581085b8e38b6e local d309f4a3ce1aa585673548ed4fd43a3aa7a5ca4f86a5a52b236d02428b991379 --匿名挂载 local xff-nginx --具名挂载 root@hecs-39042:/var/lib/docker/volumes#
# 如何确定是具名、匿名、指定路径挂载 -v xff-nginx(卷名):容器内路径 -v 容器内路径 -v /path(宿主机路径):/容器内路径 拓展: -v :/容器内路径:ro or rw # ro 只能通过宿主机操作, 容器内部是无法操作!
多个容器间数据共享
# --volumes-form 实现容器间的配置传递,数据卷容器的生命周期一直持续到没有容器使用为止 # 一旦持久化(挂载)到本地,这个时候即使删除镜像;本地的数据也不会删除 docker run -d -P -name nginx01 nginx docker run -d -P -name nginx02 --volumes-form nginx01 nginx docker run -d -P -name nginx03 --volumes-form nginx01 nginx
初识Dockerfile commit
Dockerfile 用来构建镜像,命令参数脚本。
构建步骤:
1.编写一个dockerfile
2.docker build 构建成为一个镜像
3.docker run 运行镜像
4.docker push 发布镜像
# 基础镜像 挂载目录 命令为大写 FROM ubuntu VOLUME ["volume01","volume02"] CMD echo "----build image succeed----" CMD /bin/bash
Dockerfile 构建过程
1.每个关键字都必须是大写字母
2.执行顺序从上到下
3.# 表示注释
4.每一个指令都会创建提交一个新的镜像,并提交
命令
FROM # 基础镜像 MAINTAINER # 镜像谁发布的, 姓名+邮箱 RUN # 镜像构建时候要运行的命令 ADD # 步骤:tomcat镜像,这个tomcat压缩包,添加内容 WORKDIR # 镜像的工作目录 VOLUME # 挂载的主机目录 EXPOSE # 指定对外的端口 CMD # 指定这个容器启动的时候要运行的命令,只有最后一个会生效 ENTRPOINT # 指定这个容器启动时候要运行的命令,可以追加命令 ONBUILD # 构建一个被继承Dockerfile 这个时候就会运行 COPY # 类似于ADD,将文件拷贝到镜像中 ENV # 构建时设置环境变量
创建一个ubuntu
CMD 和 ENTRYPOINT的区别
root@hecs-39042:/home/docker# docker run ubuntu-cmd -l docker: Error response from daemon: failed to create shim: OCI runtime create failed: container_linux.go:380: starting container process caused: exec: "-l": executable file not found in $PATH: unknown. root@hecs-39042:/home/docker# root@hecs-39042:/home/docker# docker run ubuntu-entrypoint -l -i total 56 drwxr-xr-x 1 root root 4096 Mar 27 07:13 . drwxr-xr-x 1 root root 4096 Mar 27 07:13 .. -rwxr-xr-x 1 root root 0 Mar 27 07:13 .dockerenv CMD外部传入的命令会覆盖掉dockerfile里面的 ENTRYPOINT可以通过外部命令追加参数
- 编写一个Dockerfile
- 发布镜像
- 启动容器
发布自己的镜像
docker login
docker网络
veth-pair --link
自定义网络
docker run -d -P --name tomcat06 --net bridge tomcat docker0特点:不能通过域名访问;--link可以打通 # 创建自定义网络 docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet # 启动容器指定自定义网络 docker run -d -P --name tomcat-mynet-01 --net mynet tomcat # 跨网络操作容器 docker network connect mynet contain
上一篇:使用kubeadm命令行工具创建kubernetes集群
栏 目:其它服务器
本文标题:docker基本命令及使用实例详解
本文地址:https://zz.feitang.co/server/30967.html
您可能感兴趣的文章
- 12-20Kubernetes中使用临时容器进行故障排查的方法
- 12-20Nginx设置HTTPS的方法步骤
- 12-20二进制方式安装 Kubernetes1.18.3版本实现脚本
- 12-20Nginx工作模式及代理配置的使用细节
- 12-20ZooKeeper分布式协调服务设计核心概念及安装配置
- 12-20Kubernetes部署可视化地图的十个步骤
- 12-20关于docker清理Overlay2占用磁盘空间的问题(亲测有效)
- 12-20Docker compose配置文件写法及命令使用示例
- 12-20openwrt安装docker并启动的操作方法
- 12-20云原生Kubernetes初始化容器Init使用教程


阅读排行
推荐教程
- 12-07一文教你怎么选择Tomcat对应的JDK版本
- 12-07新版Eclipse集成Tomcat时找不到server选项的解决方法
- 12-06IIS7 应用程序池自动回收关闭的解决方案
- 12-05Windows Server 2019安装VMware
- 12-05Windows服务器默认IE浏览器无法下载文件的解决方法
- 12-05Docker安装Jenkins全过程
- 12-19Zabbix SAML SSO 登录绕过漏洞的操作流程
- 12-15Docker-Compose搭建Spark集群的实现方法
- 12-14Docker Desktop无法正常启动解决(failed to start...)
- 12-14k8s 与docker空间使用分析与清理方法





