文档章节

docker常用命令

加油2018
 加油2018
发布于 2014/12/31 14:18
字数 1362
阅读 121
收藏 4
点赞 1
评论 0
  1. 查看容器的root用户密码

    docker logs <容器名orID> 2>&1 | grep '^User: ' | tail -n1

    因为docker容器启动时的root用户的密码是随机分配的。所以,通过这种方式就可以得到redmine容器的root用户的密码了。

  2. 查看容器日志

    docker logs -f <容器名orID>
  3. 查看正在运行的容器

    docker ps
    docker ps -a为查看所有的容器,包括已经停止的。
  4. 删除所有容器

    docker rm $(docker ps -a -q)

    删除单个容器

    docker rm <容器名orID>
  5. 停止、启动、杀死一个容器

    docker stop <容器名orID>
    docker start <容器名orID>
    docker kill <容器名orID>
  6. 查看所有镜像

    docker images
  7. 删除所有镜像
    docker rmi $(docker images | grep none | awk '{print $3}' | sort -r)
  8. 运行一个新容器,同时为它命名、端口映射、文件夹映射。以redmine镜像为例

    docker run --name redmine -p 9003:80 -p 9023:22 -d -v /var/redmine/files:/redmine/files -v /var/redmine/mysql:/var/lib/mysql sameersbn/redmine
  9. 一个容器连接到另一个容器

    docker run -i -t --name sonar -d -link mmysql:db   tpires/sonar-server
    sonar

    容器连接到mmysql容器,并将mmysql容器重命名为db。这样,sonar容器就可以使用db的相关的环境变量了。

  10. 拉取镜像

    docker pull <镜像名:tag>

    docker pull sameersbn/redmine:latest
  11. 当需要把一台机器上的镜像迁移到另一台机器的时候,需要保存镜像与加载镜像。
    机器a

    docker save busybox-1 > /home/save.tar

    使用scp将save.tar拷到机器b上,然后:

    docker load < /home/save.tar
  12. 构建自己的镜像

    docker build -t <镜像名> <Dockerfile路径>

    如Dockerfile在当前路径:

    docker build -t xx/gitlab .
  13. 重新查看container的stdout
    # 启动top命令,后台运行 $ ID=$(sudo docker run -d ubuntu /usr/bin/top -b) # 获取正在running的container的输出 $ sudo docker attach $ID
    top - 02:05:52 up 3:05, 0 users,  load average: 0.01, 0.02, 0.05 Tasks: 1 total, 1 running, 0 sleeping, 0 stopped, 0 zombie
    Cpu(s): 0.1%us, 0.2%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
    Mem: 373572k total, 355560k used, 18012k free, 27872k buffers
    Swap: 786428k total,        0k used, 786428k free, 221740k cached
    ^C$
    $ sudo docker stop $ID
  14. 后台运行(-d)、并暴露端口(-p)

    docker run -d -p 127.0.0.1:33301:22 centos6-ssh
  15. 从container中拷贝文件出来

    sudo docker cp 7bb0e258aefe:/etc/debian_version .

    拷贝7bb0e258aefe中的/etc/debian_version到当前目录下。
    注意:只要7bb0e258aefe没有被删除,文件命名空间就还在,可以放心的把exit状态的container的文件拷贝出来。

  16. 移除所有的容器和镜像(大扫除)

    用一行命令大扫除:

    docker kill $(docker ps -q) ; docker rm $(docker ps -a -q) ; docker rmi $(docker images -q -a)

    注:shell 中的 $() 和 `` 类似,会先执行这里面的内容,上面的脚本会出现如下 docker kill "pids" ; docker kill 在 docker 中用于停止容器,docker rm 删除容器, docker rmi 删除镜像

    当没有运行的容器或者是根本没有容器的时候,这只会提示一个警告信息。当你想尝试的时候,这就是个非常好的单行命令。如果你仅仅想删除所有的容器,你可以运行如下命令:

    docker kill $(docker ps -q) ; docker rm $(docker ps -a -q)

    退出时删除容器

    如果你仅仅想在一个容器中快速的运行一个命令,然后退出,并且不用担心容器状态,把 --rm 参数加入 run 命令后面,这将结束很多你保存了的容器,并且清理它们。

    示例:docker run --rm -i -t busybox /bin/bash

    不在 Shell 上运行命令

    如果你使用需要Shell 的扩展项的 docker run 命令处理某些事情,比如 docker run --rm busybox ls '/var/log/*', 这个命令将失败。这个失败的原因我花了工夫才弄明白。这个陷阱在这里:你原来没有 Shell , 而 ```* 是 Shell 的扩展项,因此你需要一个能使用的 Shell 。正确方法为:

    docker run --rm busybox sh -c 'ls /var/log/*'

    Boot2Docker 和 LapTops 处理 DNS 问题的方法

    由于这个原因, Boot2Docker 会占用 DNS 服务器很长一段时间。当你在尝试创建镜像的时候,可能会得到离谱的错误。如果你在 Ubuntu 或者 CentOS 上看到下面的提示:

    cannot lookup archive.ubuntu.com

    聪明的做法是停止,然后启动 boot2docker 。

    boot2docker-cli down && boot2docker-cli up

    这样问题就解决了。

    Volumes 解决 docker logs 和 docker copy 问题

    如果你想在一个容器中监控另一个容器中的日志文件和文件的使用,你可以看看 volumes ,例如,检查 tomcat 是否启动:

    tomcat_id=$(docker run -d -v /var/log/tomcat6 wouterd/tomcat6) # Give Tomcat some time to wake up... sleep 5 while ! docker run --rm --volumes-from ${tomcat_id} busybox /bin/sh -c "grep -i -q 'INFO: Server startup in' /var/log/tomcat6/catalina*.log" ; do echo -n "." sleep 5 done

    你还可以在一个 Dockerfile中指定 volumes ,这个在我前面的博客文章中结合 Docker 连载了。

    Docker Inspect 结合 Go Templates 的好处

    命令 docker inspect 允许使用 Go Templates 来格式化inspect 命令的输出信息如果你擅长这个,你能获取很多 docker 容器命令行的脚本输出信息。这是一个获取正在运行的容器 IP 的示例:

    container_ip=$(docker inspect --format '{{.NetworkSettings.IPAddress}}' ${container_id})

    这里有一个笨的技巧,用于得到匹配所有暴露(exposed)的端口 host:port ,并且把他们输入一个 java properties 文件:

    sut_ip=${BOOT_2_DOCKER_HOST_IP} template='{{ range $key, $value := .NetworkSettings.Ports }}{{ $key }}='"${BOOT_2_DOCKER_HOST_IP}:"'{{ (index $value 0).HostPort }} {{ end }}' tomcat_host_port=$(docker inspect --format="${template}" ${container_id}) for line in ${tomcat_host_port} ; do echo "${line}" >> ${work_dir}/docker_container_hosts.properties
    done
  17.  Docker网络学习笔记:http://blog.csdn.net/junjun16818/article/details/38423379

© 著作权归作者所有

共有 人打赏支持
加油2018
粉丝 150
博文 276
码字总数 243077
作品 0
海淀
架构师
Docker 三剑客之 Docker Swarm

上一篇:Docker 三剑客之 Docker Compose 阅读目录: Docker Machine 创建 Docker 主机 Docker Swarm 配置集群节点 Docker Service 部署单个集群服务 Docker Stack 部署多个集群服务,以及 ...

那谁爸爸
01/08
0
0
Docker系列教程23-docker-compose常用命令

原文:,转载请注明出处。 和docker命令一样,docker-compose命令也有很多选项。下面我们来详细探讨docker-compose的常用命令。 build 构建或重新构建服务。服务被构建后将会以 的形式标记,...

EACDY
05/16
0
0
Docker MongoDB 部署

MongoDB 是一款较为常用的NOSQL 数据库,结合 Docker 使用,能实现轻松配置部署、迁移,本文以下为简要介绍如何在 Docker 中部署并使用 MongoDB。下文主要分为几个部分,内容如下: MongoDB ...

speculatecat
04/06
0
0
常用docker命令,及一些坑

常用docker命令,及一些坑 常用命令 查看容器的root用户密码 docker logs <容器名orID> 2>&1 | grep '^User: ' | tail -n1 因为docker容器启动时的root用户的密码是随机分配的。所以,通过这...

清风徐不来
2014/10/24
0
0
Docker容器进入的4种方式

在使用Docker创建了容器之后,大家比较关心的就是如何进入该容器了,其实进入Docker容器有好几多种方式,这里我们就讲一下常用的几种进入Docker容器的方法。 进入Docker容器比较常见的几种做...

Mr_zebra
07/11
0
0
【docker】常用docker命令,及一些坑

常用docker命令,及一些坑 常用命令 查看容器的root用户密码 因为docker容器启动时的root用户的密码是随机分配的。所以,通过这种方式就可以得到redmine容器的root用户的密码了。 查看容器日...

moshenglv
01/11
0
0
Docker虚拟化技术系列之-命令详解

虚拟化原理:虚拟化解决方案的底部是要进行虚拟化的物理机器。这台机器可能直接支持虚拟化,也可能不会直接支持虚拟化;那么就需要系统管理程序 层的支持。系统管理程序(Virtual machine mo...

wgkgood
2017/02/21
0
0
这20个Docker Command,有几个是你会的?

在这之前呢,也写过两篇关于Docker基础入门类的文章 Docker容器技术入门(一) Docker容器技术入门(二) 很多人都感觉这文章这么简单、这么基础,可是别忘记了“万丈高楼平地起”,如果少了...

民工哥
05/31
0
0
[笔记] docker入门篇1

1.docker的概念 docker是一个依赖于linux内核的软件。同时是一个典型的C/S架构的软件,分为Docker Client和Docker Server。熟悉github的同学可以和git做一下对比。 1.介绍两个至关重要的概念...

李文良
2016/08/24
6
0
docker 容器常用命令

1 启动容器 启动容器有两种方式,一种是基于镜像新建一个容器并启动,另外一个是将在终止状态(stopped)的容器重新启动。 因为 Docker 的容器实在太轻量级了,很多时候用户都是随时删除和新...

aolens
2016/11/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

vue-router懒加载

1. vue-router懒加载定义 当路由被访问的时候才加载对应组件 2. vue-router懒加载作用 当构建的项目比较大的时候,懒加载可以分割代码块,提高页面的初始加载效率。 ###3. vue-router懒加载实...

不负好时光
6分钟前
0
0
庆祝法国队夺冠:用Python放一场烟花秀

天天敲代码的朋友,有没有想过代码也可以变得很酷炫又浪漫?今天就教大家用Python模拟出绽放的烟花庆祝昨晚法国队夺冠,工作之余也可以随时让程序为自己放一场烟花秀。 这个有趣的小项目并不...

猫咪编程
8分钟前
0
0
SpringBoot | 第七章:过滤器、监听器、拦截器

前言 在实际开发过程中,经常会碰见一些比如系统启动初始化信息、统计在线人数、在线用户数、过滤敏高词汇、访问权限控制(URL级别)等业务需求。这些对于业务来说一般上是无关的,业务方是无需...

oKong
21分钟前
4
0
存储结构分四类:顺序存储、链接存储、索引存储 和 散列存储

存储结构分四类:顺序存储、链接存储、索引存储 和 散列存储 存储结构分四类:顺序存储、链接存储、索引存储 和 散列存储。 顺序结构和链接结构适用在内存结构中。 顺序表每个单元都是按物理...

DannyCoder
32分钟前
0
0
Firefox 61已经为Ubuntu 提供支持

最新和最好的Mozilla Firefox 61 “Quantum”网络浏览器已经为Ubuntu Linux操作系统的用户提供了支持,现在可以通过官方软件库进行更新。 Mozilla于2018年6月26日发布了Firefox 61版本,该版...

六库科技
58分钟前
0
0
Win10升级后执行系统封装(Sysprep)报错

开始封装 一年多以前开始给公司封装Win10系统,便于统一给公司电脑初始化携带各种软件的系统,致力于装完既可以开发的状态。那时候最新的版本是Win10 1703版本,自然就以他为母盘,然后结合V...

lyunweb
今天
39
0
php 性能优化

#什么情况下会遇到性能问题 PHP 语法使用的不恰当

to_be_better
今天
0
0
Jenkins 构建触发器操作详解

前言 跑自动化用例每次用手工点击jenkins出发自动化用例太麻烦了,我们希望能每天固定时间跑,这样就不用管了,坐等收测试报告结果就行。 一、定时构建语法 * * * * * (五颗星,中间用空格隔...

覃光林
今天
0
0
IDEA配置技巧

超详细设置Idea类注释模板和方法注释模板 idea去掉注解param下划线 JetBrains全系列破解

AK灬
今天
0
0
rsync通过服务同步/Linux系统日志/screen工具

rsync通过服务同步 分为服务端(机器A) 和客户端(机器B) 机器A操作编辑/etc/rsyncd.conf配置文件 [root@yolks1 ~]# vim /etc/rsyncd.conf 文件中添加以下配置 port=873 ...

Hi_Yolks
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部