【docker】——基础操作汇总

本文详细介绍了如何安装Docker,包括基础概念如容器命令、web应用部署、镜像操作、仓库管理,以及Dockerfile的使用。涵盖了创建、更新、导出导入镜像及实用技巧,适合Docker初学者和进阶者参考。
摘要由CSDN通过智能技术生成

1. 安装docker

参考:docker安装

2. 基础概念

2.1 容器命令

  • -t: 在新容器内指定一个伪终端或终端。
  • -i: 允许你对容器内的标准输入 (STDIN) 进行交互。
  • docker ps:查看容器相关信息
  • docker logs 容器ID:查看容器的输出
  • docker stop 容器ID:停止容器
  • docker pull 镜像名字:拉取镜像
  • docker restart 容器ID:重启停止的容器
  • docker exec -it 243c32535da7 /bin/bash:进入某个容器
  • docker export 1e560fca3906 > ubuntu.tar:导出容器
  • docker import ubuntu.tar test/ubuntu:将容器导入为镜像
  • docker rm -f 容器ID:删除容器,** 容器必须是停止状态**
    docker container prune:清理掉所有处于终止状态的容器
  • docker run 加上–rm退出容器以后,这个容器就被删除了,方便在临时测试使用。不加–rm 退出容器后,容器只是停止运行,数据任然被保留。
  • docker run -v: 挂载目录,通过-v参数,冒号前为宿主机目录,必须为绝对路径,冒号后为镜像内挂载的路径。
    默认挂载的路径权限为读写。如果指定为只读可以用:ro

docker run -it -v /home/dock/Downloads:/usr/Downloads:ro ubuntu64 /bin/bash

2.2 web应用

  • docker run -P training/webapp python app.py:-P将容器内部的网络端口随机映射的主机上 ,-p(小写)是指定端口映射关系

0.0.0.0:32768->5000/tcp:主机的32768端口,容器中为5000

  • docker run -d -p 5001:5000 training/webapp python app.py:主机地址在前,映射到容器中的地址
  • docker port 容器ID:查看容器的端口映射关系
  • docker logs -f 容器ID:像使用tail -f一样来输出容器内部的标准输出
  • docker top 容器ID:查看容器内部运行的进程
  • docker run --name 容器名:为新建的容器制定名字

2.3 镜像命令

  • docker images:列出本地主机上的镜像

  • docker hub地址

  • docker rmi 镜像名:删除镜像

  • 创建镜像

    • 从已经创建的容器中更新镜像,并提交这个镜像
    • 使用Dockerfile指令来创建一个新的镜像
  • 更新镜像

    • 1.用原有的镜像创建一个容器
    • 2.在容器内操作
    • 3.docker commit -m=“has update” -a=“runoob” e218edb10161 runoob/ubuntu:v2
    • 4.使用docker images进行查看
  • 构建镜像

    • docker build -t 目标镜像名字 . :使用当前目录下的Dockerfile创建一个镜像
    • docker tag 镜像ID runoob/centos:dev:设置镜像标签

2.4 仓库管理

  • docker hub地址
  • docker login:登录,可以从docker hub上拉取自己账号下的全部镜像
  • docker logout:退出
  • docker search 关键词:搜索镜像
  • docker pull 镜像名:拉取镜像
  • docker push 镜像名:向docker hub上推送镜像

2.5 Dockerfile

  • FROM:定制的镜像都是基于FROM的镜像
  • RUN:用于执行后面跟着的命令行命令
    • shell格式:RUN 命令(等同于shell命令)
    • exec格式:RUN [“可执行文件”, “参数1”, “参数2”]
      注意: dockerfile的每条指令都会在docker上新建一层,过多的无意义层,会造成镜像过大。
  • docker build -t 目标镜像名 . :创建镜像
  • 上下文路径:上下文路径下不要放无用的文件,因为会一起打包发送给 docker 引擎,如果文件过多会造成过程缓慢。
  • COPY 复制指令,从上下文目录中复制文件或者目录到容器里指定路径。
    格式
COPY [--chown=<user>:<group>] <源路径1>...  <目标路径>
COPY [--chown=<user>:<group>] ["<源路径1>",...  "<目标路径>"]

<源路径>:源文件或者源目录,这里可以是通配符表达式,其通配符规则要满足 Go 的 filepath.Match 规则。
<目标路径>:容器内的指定路径,该路径不用事先建好,路径不存在的话,会自动创建。

  • ADD ADD 指令和 COPY 的使用格式一致(同样需求下,官方推荐使用 COPY)。功能也类似,不同之处如下:

ADD 的优点:在执行 <源文件> 为 tar 压缩文件的话,压缩格式为 gzip, bzip2 以及 xz 的情况下,会自动复制并解压到 <目标路径>。

  • CMD
    • CMD 在docker run时运行
    • RUN 在docker build
  • ENV:设置环境变量
ENV <key> <value>
ENV <key1>=<value1> <key2>=<value2>...

以下示例设置 NODE_VERSION = 7.2.0 , 在后续的指令中可以通过 $NODE_VERSION 引用:

  • EXPOSE:声明端口

  • WORKDIR:制定工作目录,只有通过 WORKDIR 创建的目录才会一直存在。

3. 其他场景

3.1 修改以后镜像中的文件

有两种方式:

  1. 修改原文件后,用dockerfile重新构建
  2. 在已有镜像的基础上,新建一个容器,修改文件,docker commit
  3. 或者把源程序,采用挂载的方式(docker run -v)这样修改源文件了,可以马上生效

4. 导出,导入镜像

4.1 导出镜像
docker save -o image.tar image_name

4.2 导入镜像
docker load -i image.tar

Docker —— 从入门到实践》是一本介绍Docker技术的书籍。Docker是一个开源的容器化平台,可以帮助开发者更方便地构建、部署和运行应用程序。这本书从入门到实践的角度,详细介绍了Docker的基本概念、原理和使用方法。 书中首先介绍了Docker的背景和发展历程,包括为什么需要容器化技术以及Docker的优势。接着,作者详细讲解了Docker的安装和配置,包括在不同操作系统上的安装方法。然后,书中以一个个实例来引导读者学习如何使用Docker进行应用程序的容器化和部署。这些实例包括创建镜像、构建容器、管理数据卷等。 在实践部分,书中介绍了如何使用Docker搭建开发环境和测试环境,以及如何使用Docker进行持续集成和持续部署。另外,还介绍了Docker的监控和日志管理、网络配置以及安全性等方面的内容。 这本书的优点在于它结合了理论和实践,既对Docker的原理和概念进行了深入讲解,又提供了丰富的实践案例。通过学习这本书,读者可以系统地掌握Docker基础知识,并能够利用Docker来管理和部署应用程序。 总的来说,《Docker —— 从入门到实践》是一本很好的Docker入门书籍,适合有一定编程和系统管理基础的读者。它的内容丰富有趣,通俗易懂,通过读这本书,读者可以快速上手使用Docker,并能够在实践中不断深化对容器化技术的理解和应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值