摘要:本系列教程翻译自,系列共有九篇,本文译自第六篇。这篇文章将会给大家介绍另外十五条实用的命令。他们分别是,又称为守护进程,通常是指在后台持续运行的服务,例如等。不同于,是用来删除镜像的命令。或者或者这两个命令常用于多节点部署。
本系列教程翻译自 Flux7 Docker Tutorial Series,系列共有九篇,本文译自第六篇 Part 6: The Next 15 Docker Commands。
该系列所有文章将参考其他学习资料翻译,也会加入自己的学习作为部分注解。如有错误,欢迎指正。
在之前的文章中我们介绍了十五条 Docker 命令。这篇文章将会给大家介绍另外十五条实用的 Docker 命令。
他们分别是:
daemondaemon,又称为守护进程,通常是指在后台持续运行的服务,例如 nginx、apache、php 等。Docker 的 daemon 模式便是类似 nginx 一样,让 Docker 运行在后台提供服务。
和大多数的 unix 服务一样,-d 参数可以让 Docker 运行在后台。
build在前面我们讲过 Dockerfile,不过一直没有告诉大家怎么用自己的 Dockerfile 生成镜像文件。
那么现在也不算晚:使用 build 命令生成 image。
docker build [OPTIONS] PATH | URL | -
PATH / URL / - 这三个是必选选项,三选一。
OPTION 可以使用 docker build --help 进行查看,主要包括构建过程中的内存限制、CPU 限制、以及其他。有两个必须需要了解的 OPTION 选项:
-f: 和make一样,如果PATH内找不到Dockerfile,则docker build必须要 -f 参数指定Dockerfile。
-t: 指定生成的镜像标签。例如: docker build -f Dockerfile -t tag .,使用 Dockerfile.bak 生成一个标签叫 tag 的镜像文件。
另外,- 选项非常有意思:docker build -,然后可以交互式地输入 Dockerfile,输入完毕后按 Ctrl+D 结束输入即可。
psOPTION 一定要放在 PATH / URL / - 前面。
原文至今没有提到 docker ps 命令,太坑了,补充一下:
docker ps 命令用于显示运行中的容器,例如
命令 # docker run -d ubuntu /usr/bin/top -b b33059d6c7427e377a1239eca59605e18bb6d145c4f12df6021db4896b6fcfa3 命令 # docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES b33059d6c742 ubuntu:latest "/usr/bin/top -b" 2 seconds ago Up 2 seconds backstabbing_jang
docker ps -a 则是显示所有容器,包括运行过的容器的历史记录。
attachDocker 允许 attach 进入容器并与运行中的容器进行交互,同时允许查看容器内守护进程态下的程序的输出,使用以下两种方式退出容器:
Ctrl+C 直接退出
Ctrl+ 退出并显示堆栈信息。
语法:docekr attach
那么还是刚刚那个容器:
命令 # docker run -d ubuntu /usr/bin/top -b b33059d6c7427e377a1239eca59605e18bb6d145c4f12df6021db4896b6fcfa3 命令 # docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES b33059d6c742 ubuntu:latest "/usr/bin/top -b" 2 seconds ago Up 2 seconds backstabbing_jang 命令 # docker attach backstabbing_jang #此处也可以用docker attach b330 top - 05:30:49 up 16:04, 0 users, load average: 0.01, 0.19, 0.39 Tasks: 1 total, 1 running, 0 sleeping, 0 stopped, 0 zombie %Cpu(s): 1.7 us, 2.0 sy, 0.0 ni, 96.0 id, 0.0 wa, 0.3 hi, 0.0 si, 0.0 st KiB Mem: 1003080 total, 596484 used, 406596 free, 42524 buffers KiB Swap: 1046524 total, 0 used, 1046524 free. 330716 cached Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1 root 20 0 19744 1280 1008 R 0.0 0.1 0:00.08 top top - 05:30:52 up 16:05, 0 users, load average: 0.01, 0.19, 0.39 Tasks: 1 total, 1 running, 0 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.0 us, 1.0 sy, 0.0 ni, 94.3 id, 4.3 wa, 0.3 hi, 0.0 si, 0.0 st KiB Mem: 1003080 total, 596484 used, 406596 free, 42528 buffers KiB Swap: 1046524 total, 0 used, 1046524 free. 330712 cached Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1 root 20 0 19744 1280 1008 R 0.0 0.1 0:00.08 top 省略部分输出diff
docker diff
示例:
命令 # docker run -t -i ubuntu /bin/bash 命令(容器内) root@cc9befbe64a1:/# nano a bash: nano: command not found 命令(容器内)root@cc9befbe64a1:/# apt-get install nano Reading package lists... Done Building dependency tree Reading state information... Done Suggested packages: spell The following NEW packages will be installed: nano 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Need to get 194 kB of archives. After this operation, 614 kB of additional disk space will be used. Get:1 http://archive.ubuntu.com/ubuntu/ trusty/main nano amd64 2.2.6-1ubuntu1 [194 kB] Fetched 194 kB in 3s (54.3 kB/s) Selecting previously unselected package nano. (Reading database ... 11527 files and directories currently installed.) Preparing to unpack .../nano_2.2.6-1ubuntu1_amd64.deb ... Unpacking nano (2.2.6-1ubuntu1) ... Setting up nano (2.2.6-1ubuntu1) ... update-alternatives: using /bin/nano to provide /usr/bin/editor (editor) in auto mode update-alternatives: using /bin/nano to provide /usr/bin/pico (pico) in auto mode 命令(容器内) root@cc9befbe64a1:/#
这个容器ID是cc9befbe64a1,于是可以新开一个终端:
命令 # docker diff cc9 A /.wh..wh.plnk/119.673746 A /.wh..wh.plnk/335.673670 C /bin A /bin/nano A /bin/rnano C /etc C /etc/alternatives D /etc/alternatives/editor.fr.1.gz 省略部分输出events
获取 Docker 服务端的实时事件,例如 docker events 的同时运行 docker run ubuntu。
import用于导入 URL / 文件,从本地导入需要 - 参数。docker import [OPTIONS] URL|- [REPOSITORY[:TAG]]、URL/-二选一。
例如,我们导入 openvz 的 suse minimal 镜像:
命令# docker import http://mirrors.ustc.edu.cn/openvz/template/precreated/suse-13.1-x86-minimal.tar.gz suse:minimal #这里使用的是ustc镜像源。 Downloading from http://mirrors.ustc.edu.cn/openvz/template/precreated/suse-13.1-x86-minimal.tar.gz 127a9e7b9f87e4fc280c96bee9fad0a19057de38d307fe7fc1f6d35c86f1aff657.89 MB/57.89 MB 命令# docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE suse minimal 127a9e7b9f87 2 minutes ago 149.1 MB
导入本地镜像:
cat suse-13.1-x86-minimal.tar.gz |docker import - suse:minmal
导入 Gentoo 的 stage3:
docker import http://mirrors.ustc.edu.cn/gentoo/releases/amd64/autobuilds/current-stage3-amd64/stage3-amd64-20150423.tar.bz2 gentoo:stage3export
和 import 相反,export 将容器导出成 tar 压缩包。
例如
命令 # docker run -i -t -d suse:minimal /bin/bash 060f6e6c877af01313363b6506107438b9eb5ba87a7ef0625577e348a554ecca 命令 # docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 060f6e6c877a suse:minimal "/bin/bash" 2 seconds ago Up 2 seconds fervent_ritchie 命令 # docker export -o a.tar 060f 命令 # docker export 060f > a.tar #也可以这样。cp
从容器内复制出文件:格式 docker cp container:path hostpath
命令 # docker cp 060:/etc/zypp/zypp.conf /tmp/ #060是容器ID的简写 命令 # cat /tmp/zypp.conf ## Configuration file for software management ## /etc/zypp/zypp.conf ## ## Boolean values are 0 1 yes no on off true false 省略。。login
登录到 docker registry server:
命令 # docker login Username (qiuker521): qiuker521 WARNING: login credentials saved in /root/.dockercfg. Login Succeeded
当然也可以登录到自己的私有服务器:docker login localhost:8080
inspect用法:docker inspect
实例的IP地址。
端口绑定
搜索特定的端口映射
搜集配置信息。
例如
命令 # docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES cf57741249fb dockerui/dockerui:latest "/dockerui" 2 minutes ago Up 2 minutes 0.0.0.0:9000->9000/tcp trusting_hawking 命令 # docker inspect --format="{{.NetworkSettings.IPAddress}}" cf5 172.17.0.17kill
用来停止正在运行的容器。
docker kill [OPTION] containerrm
用来删除容器。
docker rm [OPTIONS] CONTAINER [CONTAINER...]rmi
不同于 rm,是用来删除镜像的命令。
docker rmi [OPTIONS] IMAGE [IMAGE...]
wait因为会有很多层的依赖,所以很多时候需要用 -f 参数进行删除。
用来获取容器的退出信号值。已退出的容器直接返回 exit 值,未退出的容器等待容器退出,然后返回 exit 值。
load & save这两个放在一块吧。
使用 load 从 stdin 导入一个 tar 格式的镜像或者仓库,然后用 save 将 tar 镜像输出到 stdout。
docker save -o 或者docker save
docker load -i
这两个命令常用于多节点部署。
例如:
命令 # docker save -o a.tar suse 命令 # docker load -i a.tar后记
Docker 命令的操作到此结束,接下来的教程我们将会探讨 Docker API:第七章讲解 Docker 服务器的 Docker API,第八章和第九章讲解 Docker remote API。
区别在于:Docker API 主要是用于 Docker 官方 Index、Registry 和 Client 之间互通消息的 API,Docker remote API 则是用于控制主机 Docker 服务端的 API。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/26413.html
摘要:本系列教程翻译自,系列共有九篇,本文译自第六篇。这篇文章将会给大家介绍另外十五条实用的命令。他们分别是,又称为守护进程,通常是指在后台持续运行的服务,例如等。不同于,是用来删除镜像的命令。或者或者这两个命令常用于多节点部署。 本系列教程翻译自 Flux7 Docker Tutorial Series,系列共有九篇,本文译自第六篇 Part 6: The Next 15 Docke...
摘要:此刻的后手指依旧飞速地敲打键盘,丝毫没有要停不下来意思。阅读本期技术周刊,你不光能弄明白什么是,使用的意义何在,还将被传授秘籍,以达的境界。周刊筛选的每篇内容,是作者的独到见解,踩坑总结和经验分享。 showImg(https://segmentfault.com/img/bVC5qJ?w=900&h=385); 啪嗒啪嗒,啪嗒啪嗒,听到后排动感十足的清脆键盘响,我就能猜到公司程序员定...
摘要:本系列教程翻译自,系列共有九篇,本文译自第二篇。总结本章知识介绍了最基本的十五个命令,接下来的教程将会陆续介绍如何在中运行一个应用以及其他的命令。接下来会在本系列教程结束后补充几篇应用的实例。 本系列教程翻译自 Flux7 Docker Tutorial Series,系列共有九篇,本文译自第二篇 Part 2: The 15 Commands。 该系列所有文章将参考其他学习...
摘要:本系列教程翻译自,系列共有九篇,本文译自第二篇。总结本章知识介绍了最基本的十五个命令,接下来的教程将会陆续介绍如何在中运行一个应用以及其他的命令。接下来会在本系列教程结束后补充几篇应用的实例。 本系列教程翻译自 Flux7 Docker Tutorial Series,系列共有九篇,本文译自第二篇 Part 2: The 15 Commands。 该系列所有文章将参考其他学习...
摘要:本系列教程翻译自,系列共有九篇,本文译自第一篇。,一种新的容器化技术,因为轻量级和便携化而受到广泛关注。本篇文章是系列教程的第一篇。镜像只读的容器模板,简言之就是系统镜像文件。首先,向发出请求创建一个镜像并且指定容器内要运行的命令。 本系列教程翻译自 Flux7 Docker Tutorial Series,系列共有九篇,本文译自第一篇 Part 1: An Introduction。...
阅读 1732·2021-11-24 10:18
阅读 2206·2021-11-18 13:20
阅读 2332·2021-08-23 09:46
阅读 992·2019-08-30 15:56
阅读 2839·2019-08-30 15:53
阅读 737·2019-08-30 14:22
阅读 470·2019-08-29 15:34
阅读 2531·2019-08-29 12:14