千家信息网

docker基本命令有哪些

发表于:2025-01-22 作者:千家信息网编辑
千家信息网最后更新 2025年01月22日,这篇文章主要介绍了docker基本命令有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。docker基本命令docker文件系统do
千家信息网最后更新 2025年01月22日docker基本命令有哪些

这篇文章主要介绍了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(容器内路径) nginxroot@hecs-39042:/var/lib/docker/volumes# ls4ad594eee4e6115b2852f5fa952176c799e99bf1d0cadaee9c581085b8e38b6e  d309f4a3ce1aa585673548ed4fd43a3aa7a5ca4f86a5a52b236d02428b991379  xff-nginxbackingFsBlockDev                                                 metadata.dbroot@hecs-39042:/var/lib/docker/volumes# docker volume lsDRIVER    VOLUME NAMElocal     4ad594eee4e6115b2852f5fa952176c799e99bf1d0cadaee9c581085b8e38b6elocal     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 nginxdocker run -d -P -name nginx02 --volumes-form nginx01 nginxdocker run -d -P -name nginx03 --volumes-form nginx01 nginx

初识Dockerfile commit

Dockerfile 用来构建镜像,命令参数脚本。

构建步骤:

1.编写一个dockerfile

2.docker build 构建成为一个镜像

3.docker run 运行镜像

4.docker push 发布镜像

# 基础镜像 挂载目录 命令为大写FROM ubuntuVOLUME ["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 -ldocker: 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 -itotal 56drwxr-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 .dockerenvCMD外部传入的命令会覆盖掉dockerfile里面的ENTRYPOINT可以通过外部命令追加参数
  • 编写一个Dockerfile

  • 发布镜像

  • 启动容器

发布自己的镜像

docker login

docker网络

veth-pair --link

自定义网络

docker run -d  -P --name tomcat06 --net bridge tomcatdocker0特点:不能通过域名访问;--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基本命令有哪些"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

0