文档章节

docker常用命令

加油2018
 加油2018
发布于 2014/12/31 14:18
字数 1362
阅读 302
收藏 4

#程序员薪资揭榜#你做程序员几年了?月薪多少?发量还在么?>>>

  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
码字总数 246145
作品 0
海淀
架构师
私信 提问
加载中

评论(0)

(三) Docker 常用操作与CentOS7 防火墙命令

参考并感谢 Docker 常用命令 https://docs.docker.com/engine/reference/commandline/docker/ Docker 登录docker账户 根据本地待上传镜像 修改新镜像,新镜像名称需要与hub中的repository保持...

osc_da4rblss
2019/09/17
1
0
docker container(容器)

docker 容器 Docker容器类似于一个轻量级的沙箱,Docker利用容器来运行和隔离应用 容器是从镜像创建的应用运行实例。它可以启动,开始,停止,删除,而这些容器都是彼此相互隔离,互不可见的。...

osc_eew3qbpd
2019/03/31
1
0
Docker 三剑客之 Docker Swarm

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

那谁爸爸
2018/01/08
0
0
Docker:常用命令大全 [七]

一、docker的命令的解释 1、命令解释 docker run -d -p 80:80 nginx run (创建并运行一个容器)-d 放在后台-p 端口映射nginx docker镜像的名字 2、配置docker镜像加速 vi /etc/docker/daemo...

osc_mpdk2b71
2019/01/15
2
0
Docker系列教程23-docker-compose常用命令

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

EACDY
2018/05/16
92
0

没有更多内容

加载失败,请刷新页面

加载更多

Windows 10 中安装 Anaconda 3

首先通过下面链接地址下载 Anaconda 的个人版本。 https://www.anaconda.com/products/individual 从上面下载的地址中,选择你需要的版本,目前 Windows 应该基本上都是 64 位的了。 在你下载...

honeymoose
53分钟前
25
0
如何禁用textarea的resizable属性? - How do I disable the resizable property of a textarea?

问题: I want to disable the resizable property of a textarea . 我想禁用textarea的resizable属性。 Currently, I can resize a textarea by clicking on the bottom right corner of t......

技术盛宴
53分钟前
29
0
即时通信E聊SDK简介(1)

2.简介: E聊SDK是一套适用于PC端, 移动端的即时通讯解决方案,源代码开放。E聊整合了即时通讯的基础能力,使用E聊,您可以让您的应用快速接入即时聊天的功能。E聊现已适配PC Web, 移动Web, ...

E聊
今天
15
0
多个知乎账号一起登陆,同时管理运营的神器!

随着互联网生态的优化,从2016年开始,信息内容产业相当有关注度,其和粉丝互动起来很方便、流量大到惊人、可长远发展等等优势,迅速聚集了无数企业和个人,为了有非常全面的播放数据,大家通...

易媒助手
今天
22
0
403禁止vs 401未经授权的HTTP响应 - 403 Forbidden vs 401 Unauthorized HTTP responses

问题: For a web page that exists, but for which a user does not have sufficient privileges (they are not logged in or do not belong to the proper user group), what is the prope......

fyin1314
今天
19
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部