docker介绍

2023-11-19

公式 --Usage: docker [OPTIONS] COMMAND

A self-sufficient runtime for containers

Options:
–config string Location of client config files (default “/root/.docker”)
-c, --context string Name of the context to use to connect to the daemon (overrides DOCKER_HOST env var and default context set with “docker context use”)
-D, --debug Enable debug mode
-H, --host list Daemon socket(s) to connect to
-l, --log-level string Set the logging level (“debug”|“info”|“warn”|“error”|“fatal”) (default “info”)
–tls Use TLS; implied by --tlsverify
–tlscacert string Trust certs signed only by this CA (default “/root/.docker/ca.pem”)
–tlscert string Path to TLS certificate file (default “/root/.docker/cert.pem”)
–tlskey string Path to TLS key file (default “/root/.docker/key.pem”)
–tlsverify Use TLS and verify the remote
-v, --version Print version information and quit

Management Commands:
builder Manage builds
config Manage Docker configs
container Manage containers
context Manage contexts
engine Manage the docker engine
image Manage images
network Manage networks
node Manage Swarm nodes
plugin Manage plugins
secret Manage Docker secrets
service Manage services
stack Manage Docker stacks
swarm Manage Swarm
system Manage Docker
trust Manage trust on Docker images
volume Manage volumes

Commands:
attach Attach local standard input, output, and error streams to a running container # 当前shell下attach连接指定运行镜像
build Build an image from a Dockerfile # 通过Dockerfile 定制镜像
commit Create a new image from a container’s changes # 提交当前容器为新的镜像
cp Copy files/folders between a container and the local filesystem # 从容器中拷贝只当文件或者目录到主机中
create Create a new container # 创建一个新的容器,同run, 但不启动他
diff Inspect changes to files or directories on a container’s filesystem # 查看docker容器变化
events Get real time events from the server # 从 docker 服务获取容器实时事件
exec Run a command in a running container # 从已存在的容器上运行命令
export Export a container’s filesystem as a tar archive # 到处容器的内容流作为一个tar归档文件 [对应 import ]
history Show the history of an image # 展示一个镜像形成历史
images List images # 列出系统当前镜像
import Import the contents from a tarball to create a filesystem image # 从tar包中的内容创建一个新的文件系统映像[对应export]

info Display system-wide information # 显示系统相关信息
inspect Return low-level information on Docker objects # 查看容器详细信息
kill Kill one or more running containers # kill 指定 doker 容器
load Load an image from a tar archive or STDIN # 从一个 tar 包中加载一个镜像 [对应save]
login Log in to a Docker registry # 注册或者登录一个 docker 源服务器
logout Log out from a Docker registry # 从当前 Docker registry 退出
logs Fetch the logs of a container # 输出当前容器日志信息
pause Pause all processes within one or more containers # 暂停容器
port List port mappings or a specific mapping for the container # 查看映射端口对应的容器内部源端口
ps List containers # 列出容器列表
pull Pull an image or a repository from a registry # 从docker 镜像源服务器拉取指定镜像或者库镜像
push Push an image or a repository to a registry # 推送指定奖项或者库镜像至docker源服务器
rename Rename a container # 重名
restart Restart one or more containers # 重启
rm Remove one or more containers # 移除一个或者多个容器
rmi Remove one or more images # 移除一个或者多个镜像[无容器使用该镜像才可删除,否则需删除相关容器才可 或-f]
run Run a command in a new container # 创建一个新的容器并运行一个命令
save Save one or more images to a tar archive (streamed to STDOUT by default) # 保存一个镜像为 tar 包[对应 load]
search Search the Docker Hub for images # 在 dockerhub中搜索镜像
start Start one or more stopped containers # 启动
stats Display a live stream of container(s) resource usage statistics
stop Stop one or more running containers # 停止
tag Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE
top Display the running processes of a container
unpause Unpause all processes within one or more containers
update Update configuration of one or more containers
version Show the Docker version information
wait Block until one or more containers stop, then print their exit codes

帮助命令

info

version

镜像命令

公式: docker image/search/pull [option] image_name

docker image -a # 显示所有镜像( 含中间层 )
docker image -q # 显示镜像id ( 以后删除可以先删除指令再 -q )
docker image --digest # 显示摘要信息 (类似备注)
docker image --no-trunc # 显示完整信息

docker search --no-trunc # 显示完整的镜像描述
docker search -s # 列出点赞数不小于指定值的镜像
docker search --automated # 只列出automated build类型的镜像

docker pull

docker rmi -f image_name # 强制删除一个
docker rmi -f image1:TAG image2:TAG
docker rmi -f $(docker images -qa) # 删除全部

有镜像才可以创建仓库

docker run [option] IMAGE [command] [ARG…|参数]

run option介绍:

–name=“容器新名字”:#为容器指定一个名称
-i: 以交互模式运行容器,通常与-t一起用
-t: 为容器重新分配一个伪输入终端
-P(大写): 随机端口映射
-p(小写): 指定端口映射,[ 主机端口:docker容器端口 ] # 对外公布的端口 : 内部实体的端口 (mongo 27017)

-d:后代运行容器,并返回id 启动守护进程

***************** 继承父类数据卷 ( 前提是dockerfile里面写好了自动生成数据卷 ) *************

问题:
1. 删除dc01, dc02修改后dc03可否访问
2. 删除dc02后dc03可否访问
3. 新建dc04继承dc03后再删除dc03
4. 结论: 容器之间配置信息的传递,数据卷的生命周期一直持续到没有容器使用它为止

1` 即使删了父容器 数据一样都是存在

docker run -it --name dc01 image_name
docker run -it --name dc02 --volumes-from dc01 image_name

容器命令

run [OPTIONS] IMAGE [Commands][ARG] # 新建容器并启动
exit / ctrl + q + p # exit停止退出 第二种不停止推出
start # 启动容器
restart # 重启
stop # 关闭 ( 关机 )
kill # 强制关闭 ( 拔电源 )
rm # 删除 docker rm $( docker ps -qa ) / docker ps -qa | xargs docker rm ( 管道符 将左边命令传递给右边命令的xargs )

#*************************# 重要
docker run -d centos # 后台运行 且 立刻退出
docker 机制 : Docker容器后台运行 必须要有一个前台进程 如果不是那些一直挂起的命令 ( top, tail ) 就是会自动退出的
交互用 -it 后台 用 -d

查看日志

docker log -f -t --tail Image_id # 查看日志 输出才有显示
1. -t 加入时间戳
2. -f 跟随最新的日志打印
3. -tail 数字显示最后多少条

产看进程

docker top image_id # 查看容器进程

查看细节

docker inspect image_id # 容器内部细节

进入容器

docker exec -it image_id bashShell # 启动新的进程 打开新的终端
docker attach -it image_id bashShell # 启动命令行 不会打开新终端

从容器内拷贝文件到宿主机上

docker cp image_id:容器内路径 目的主机路径

*********************************************** commit ************************************************#

Usage:  docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

Create a new image from a container's changes

Options:
  -a, --author string    Author (e.g., "John Hannibal Smith <hannibal@a-team.com>")
  -c, --change list      Apply Dockerfile instruction to the created image
  -m, --message string   Commit message
  -p, --pause            Pause container during commit (default true)

docker commit -m 信息 -a 作者 images_id 要创建目标镜像名:[标签名]

*********************************************** 数据卷 ************************************************#

在本地和容器内生成一个共享数据的文件夹 即使容器没开 本地上传的文件也会在容器内出现

docker run -it -v 本地路径:容器路径 images_id

docker run -it -v 本地路径:容器路径: ro images_id [ 权限 ] 只读

*********************************************** Dockerfile ************************************************#

规则:
1. 每条保留字指令都必须为大写字母且后面要跟随至少一个参数
2. 指令按照从上到下,顺序执行
3. #表示注释
4. 每条执行都会创建要给新的镜像层,并对镜像进行提交

FROM # 继承哪个基础镜像
MAINTAINER # images_message
RUN # 容器构建的时候需要运行的命令 ( linux的哪个命令 )
EXPOSE # 当前容器对外暴露出的端口
WORKDIR # 指定在创建容器后,终端默认登录进来工作目录,一个落脚点
ENV #
ADD #
COPY #
VOLUME # 容器建立时需要的容器卷
CMD # 输入docker run 后添加的命令
ENTRYPOINT #
ONBUILD #
LABEL # 注释

以前记录

docker中的概念
1. dockerfile ( image的源代码 ) [ 源代码:将人类可读的计算机语言指令交给计算机执行的代码 ]
2. image 镜像 ( 可执行程序 )
3. container 容器 ( 运行起来的进程 )
4. docker ( 编译器 )

如何使用 docker ( #docker build #docker run #docker pull ) 通常只用到前两个命令就能创建doker并且运行了

docker 命令作用:
1. docker build 创建 image ( 源码docker deamon 到 image )
2. docker run 有了image 运行 image ( image 到 docker container )
3. docker pull 从Docker Hun 中下载image 然后 运行

docker中的环境创建到执行过程 : 在 dockerfile 中指定需要哪些程序,什么配置,把dockerfile 交给 docker 进行编译( docker build 命令 )
生成的可执行程序 image ( docker run 命令 可以执行这个image ) image 运行起来后就是 docker container

docker 工作流程中的几个概念:
1. docker使用了常见的CS架构 ( client-server模式 )
2. docker client 负责处理用户输入的各种命令( docker build 、docker run )
3. docker deamon 真正工作的 server
4. docker client 、 coker demon 可以运行在同一台机器上

docker 工作流程 :
1. 写完 dockerfile 输入 #docker build dockerfile就会交给docker"编译"
2. client 接收到 #docker build 命令后 传递给 docker daemon ( server ) docker daemon根据dockerfile创建处 “可执行程序 image”
3. 有了 image 后 使用 #docker run 命令 docker deamon接收到命令后找到具体的 image 然后加载到内存开始执行
4. image 执行完后就是 container
----------
docker pull 运行流程
client 发送命令 传递给 docker deamon docker deamon接收到命令后 传递给 docker registry 发送image下载请求

docker 底层实现:
1. docker 基于 Linux 内核提供了几项功能
2. NameSpace 隔离资源
3. Control groups 控制容器中进程对系统资源的消耗 ( 内存上限 cpu上运行 )

镜像,作为一个特殊的文件系统

docker 的不同环境中的不同命令
1. 辅助命令
docker version
docker info
docker --help
2. Images 镜像命令
2.1 docker images - 列出本地所有镜像
-a 包含中间映像层
-q 只显示镜像id
2.2 搜索镜像 docker search [options] 镜像名
-s 指定值 列出收藏数不少于指定值的镜像
–no-trunc 显示完整的镜像信息
3.
学习 docker Scrapyweb 知识 并且把爬虫部署到服务器上爬行
1 先在本机上测试 是否能爬取 ( 爬完 ) 检查数据是否正确
2. 先学如何部署 后部署 doker背景 Scrapyweb背景 命令等

Docker 学习

build:构建,就是构建镜像.

ship:运输,运输镜像,从仓库和主机运输.

run:运行的镜像就是一个容器.

build,ship,run和镜像,仓库,容器是一一对应的.

5.1 docker基本命令
1.docker pull [options] NAME[:TAG]

通过此命令可以docker远程仓库拉取镜像到本地.

name是拉取镜像的名称,:TAG表示是可选的,如果不选表明时latest,如果选择表明是指定版本的.

options是拉去的一些参数.

当不加请求地址的时候回去docker的官网拉取镜像.

2.docker images [options] [REPOSITORY[:TAG]]

options是选项,后面是指定镜像的名称.这个用的不多,可能当本地镜像非常多的时候要指定查看某一个镜像.

IMAGE ID 其实是一个64位的字符串,它可以唯一标识我们的镜像,这里只显示了16位,后面的被截掉了.

  1. docker run [options] IMAGE[:TAG] [COMMAND] [ARG…]

IMAGE是镜像的名字

COMMAND是运行起来的时候要执行什么命令.

ARG表示这条命令运行需要的参数.

cd /scrapy_app/
cd scrapy_app_6818
将文件上传到自己端口的目录下 scrapy_app_6818
然后进入docker容器 docker exec -it scrapyd_yyx_6818 /bin/bash
到这里就可以 pip intall 包名

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

docker介绍 的相关文章

随机推荐

  • R语言GGPLOT2绘制圆环图雷达图/星形图/极坐标图/径向图Polar Chart可视化分析汽车性能数据

    最近我们被客户要求撰写关于可视化的研究报告 包括一些图形和统计输出 漂亮的圆形图 我不确定对数据分析师本身是否有额外的好处 但如果能吸引决策者的注意 那对我来说就是额外的价值 然而 用coord polar 或偶尔发现的ggplot2中的c
  • Lua的线程和状态 及协程

    luaL loadstring L return coroutine create function end nCallResult lua pcall L 0 1 0 创建一个协程和lua newthread创建一个线程一样 不过这个创建
  • 关于mysql group_concat不得不说的事

    mysql中 group concat函数将group by产生的同一个分组中的值连接起来 返回一个字符串结果 当查询的数据过多时 group concat超出了默认值1024个字符 超过就会截断 导致group concat查询出来的数据
  • ppt怎么压缩文件大小?学会这几种方法

    ppt 用office PowerPoint 制作的幻灯片 用于编辑 播放 各种操作 简单易学 在实际的生活和办公过程中 ppt文件的应用范围非常广泛 同样的 ppt也是非常重要的工具之一 很多时候 我们需要对ppt文件进行压缩 从而满足p
  • 原理图中的电阻旁边有个”NC“,什么意思?

    NC表示此处空贴 即此处不贴任何电子器件 如果安装的话 电路会有另外的功能 或许在性能上会有变化 常用于电路板贴装技术中 电路板贴装是回流焊中的一种工艺流程 回流焊也叫再流焊 是伴随微型化电子产品的出现而发展起来的焊接技术 主要应用于各类表
  • leetcode-无重复元素的最长子串

    给定一个字符串 请你找出其中不含有重复字符的最长子串的长度 例如对于字符串 str adfhdsla 它的无重复字符的最长子串为 sub adfhdsl 很显然 首先要有一个函数用以判断当前的子串中有无重复元素 然后寻找子串的工作就要用这个
  • 闲云:unity中不能识别monobehevior关键字的问题

    有时候一些小问题很恼人 如unity中新建脚本后不能识别monobehevior关键字 在vs2017右侧的解决方案中点击刷新图标 或者把不能识别的脚本添加到vs2017右侧的解决方案中的Assets中即可 还不行就点击 排除 然后再 添加
  • QApplication和QCoreApplication

    一 QCoreApplication用于non GUI的应用程序 不需要依赖QtGui库 QApplication用于包含GUI的应用程序 需要用到QtGui库 Qt是一个开源的C 库 主要用来开发GUI程序 但同时 它也支持控制台程序的开
  • log4j使用说明

    查阅阿里的jva开发手册 我们发现在打印日志的时候有一下几条是强制的 1 应用中不可直接使用日志系统 Log4j Logback 中的API 而应依赖使用日志框架SLF4J中的API 使用门面模式的日志框架 有利于维护和各个类的日志处理方式
  • 前端自测.

    交互 宽度1200px 表单校验 长度 敏感词汇 初始化 loading 结果 空 表单重复提交 loading 请求拦截 限流 数字 大数据 千分位 文本长度 省略号 数据查询结果校验 按条件查询结果是否正确 空数据传参 xx 参数头尾有
  • go struct{} 空结构体的特点和作用

    空结构体的特点和作用 参考代码 package main import fmt unsafe func main empStruct 空结构体的实例和作用 func empStruct 空结构体的特点 1 不占用内存 2 地址不变 var
  • Input

    Unity3d的所有输入 包括键盘鼠标和智能手机触摸等都是通过这一个类来完成 Input类 见API http docs unity3d com ScriptReference Input html 输入Input类使用 建议在Updata
  • Minikube 架构及启动流程剖析

    原文作者 wzqnls 编辑 夏天 对于要学习 Kubernetes 或者需要本地开发的开发人员来说 Minikube 是一个不错的选择 通过使用 Minikube 这个工具 我们可以非常快捷地在本地部署一套单节点的 Kubernetes
  • 【Linux】线程安全

    文章目录 1 线程互斥 1 1 线程间互斥的相关概念 1 2互斥量 1 3互斥量接口 1 4互斥量实现原理 2 可重入VS线程安全 3 常见锁概念 3 1死锁 3 2常见死锁情况 3 2 1情况一 忘记释放锁 3 2 2情况二 线程重复申请
  • [机缘参悟-66]:怎样才能让别人愿意帮你:利益共享法则、“大道”、“人性”

    目录 前言 第1章 生命是利益 1 1 什么是利益 1 2 不同时期 利益展现不同的形态 1 3 利益是维系社会运行的根本力量 1 4 利益是中性词 第2章 共享利益 2 1 共享利益的形态 2 2 显性的共享利益 物质利益 2 3 利益的
  • 分享一个嘉立创封装库(内含AD和PADS两种格式)

    一直以来做封装都是令我头疼的问题 偶然发现嘉立创的封装库 真的非常好用 而且封装做得非常漂亮 这个封装做得非常好 我也打过几款板子出来 手工焊接起来也非常好 真的是非常好的一个封装库 封装库里面包含了AD Protel99和PADS三种格式
  • 给windows宿主机和wsl2的ubuntu-20.04分配固定IP,使能相互ping通

    我们知道wsl2是基于hyper v的虚拟机 每次重新启动的时候 都会重新拉一个新的hyper v虚拟机实例 然后虚拟网卡的IP是dhcp随机分配的 如果作为开发系统用 就会比较烦每次都要换一个IP 有人提供了个脚本 他写了个bat脚本在w
  • Tomcat之startup.bat启动闪退解决

    安装完了service 那个服务器 使用从官网下载的apche包 我使用的是这个包apache tomcat 8 5 81 windows x64 去bin里面启动 startup bat结果出现闪退 问题还是java环境变量的设置问题 可
  • 用户的计算机名,获取计算机名及用户名

    ifdef WINDOWS uses Windows endif ifdef UNIX uses BaseUnix endif ifdef UNIX function GetUserName String begin Result GetE
  • docker介绍

    公式 Usage docker OPTIONS COMMAND A self sufficient runtime for containers Options config string Location of client config