小知识:docker基本命令及使用实例详解

docker基本命令

%小知识:docker基本命令及使用实例详解-猿站网-插图

%小知识:docker基本命令及使用实例详解-1猿站网-插图

%小知识:docker基本命令及使用实例详解-2猿站网-插图

docker文件系统

%小知识:docker基本命令及使用实例详解-3猿站网-插图

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

到此这篇关于docker基本命令及使用实例的文章就介绍到这了,更多相关docker基本命令内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文地址:https://blog.csdn.net/qq_41152046/article/details/123783962

声明: 猿站网有关资源均来自网络搜集与网友提供,任何涉及商业盈利目的的均不得使用,否则产生的一切后果将由您自己承担! 本平台资源仅供个人学习交流、测试使用 所有内容请在下载后24小时内删除,制止非法恶意传播,不对任何下载或转载者造成的危害负任何法律责任!也请大家支持、购置正版! 。本站一律禁止以任何方式发布或转载任何违法的相关信息访客发现请向站长举报,会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。本网站的资源部分来源于网络,如有侵权烦请发送邮件至:2697268773@qq.com进行处理。
建站知识

小知识:Minikube搭建Kubernetes集群

2023-3-8 16:46:21

建站知识

小知识:Docker部署项目完全使用指南(小结)

2023-3-8 17:01:05

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索