公式 --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位,后面的被截掉了.
- 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 包名