docker常用命令

docker常用命令:


关于镜像的:
    1. 查看docker版本:docker -verison
    2. 拉取镜像:docker pull registry.hub.docker.com/ubuntu:12.04
    3. 显示已有镜像:docker images
    4. 指定使用镜像启动一个容器:docker run -t -i ubuntu:14.04 /bin/bash
    5. 退出容器:exit
    6. 通过改变容器,拓展镜像:docker commit(docker commit -m "Added json gem" -a "Docker Newbee" 0b2616b0e5a8 ouruser/sinatra:v2,其中,-m来指定提交的说明信息,跟我们使用的版本控制工具一样; -a可以指定更新的用户信息;之后是用来创建镜像的容器的ID;最后指定目标镜像的仓库名和tag信息。创建成功后会返回这个镜像的ID信息。)
    7. 使用Dockerfile创建新的镜像:docker build,Dockerfile中每一条指令都创建镜像的一层,一个镜像不能超过127层,docker build -t="ouruser/sinatra:v2" .(其中-t标记来添加tag,指定新的镜像的用户信息。“.”是Dockerfile所在的路径(当前目录),也可以替换为一个具体的Dockerfile的路径。)
    8. Dockerfile 基本的语法是,使用#来注释,FROM指令告诉Docker使用哪个镜像作为基础,接着是维护者的信息,RUN 开头的指令会在创建中运行,比如安装一个软件包,在这里使用apt-get来安装了一些软件,编写完成Dockerfile后可以使用docker build来生成镜像。
    9. Dockerfile命令:
        1)复制本地文件到镜像:ADD myApp /var/www(put my local web site in myApp folder to /var/www)
        2)向外部开放端口:EXPOSE 80
        3)描述容器启动后运行的程序,使用CMD命令:CMD ["/usr/sbin/apachectl", "-D", "FOREGROUND"]
    10. 修改镜像的标签:docker tag
    11. 本地文件系统导入一个镜像:cat ubuntu-14.04-x86_64-minimal.tar.gz |docker import - ubuntu:14.04
    12. 把自己创建的镜像上传到仓库中:docker push
    13. 导出镜像到本地文件:docker save -o ubuntu_14.04.tar ubuntu:14.04
    14. 从导出的本地文件中再导入到本地镜像库:docker load --input ubuntu_14.04.tar
    15. 移除本地镜像:docker rmi,移除容器:docker rm,清理所有未打过标签的本地镜像:docker rmi $(docker images -q -f "dangling=true")

关于容器的:
    1. 启动容器:docker run,docker run -t -i ubuntu:14.04 /bin/bash(-t选项让Docker分配一个伪终端(pseudo-tty)并绑定到容器的标准输入
    上,-i则让容器的标准输入保持打开)
    2. 启动已经终止的容器:docker start
    3. 容器后台运行,使用-d参数
    4. 获取容器的输出信息:docker logs [container ID or NAMES](容器id或名称)
    5. 终止容器:docker stop,通过exit命令或Ctrl+d来退出终端时,所创建的容器立刻终止
    6. 查看终止状态的容器:docker ps -a
    7. 先终止运行态的容器,再重启容器:docker restart
    8. 进入后台运行的容器:docker attach或nsenter工具。(使用attach命令有时候并不方便。当多个窗口同时attach到同一个容器的时候,所有窗口都会同步显示。当某个窗口因命令阻塞时,其他窗口也无法执行操作了。)
    9. 导出容器:docker export,docker export 7691a814370e > ubuntu.tar
    10. 导入容器:docker import,从容器快照文件中再导入为镜像,cat ubuntu.tar | sudo docker import - test/ubuntu:v1.0,
导入镜像存储文件到本地镜像库和导入一个容器快照到本地镜像库,这两者的区别在于容器快照文件将丢弃所有的历史记录和元数据信息(即仅保存容器当时的快照状
态),而镜像存储文件将保存完整记录,体积也要大。此外,从容器快照文件导入时可以重新指定标签等元数据信息。
    11. 删除一个处于终止状态的容器:docker rm,删除一个运行中的容器,可以添加-f参数
    12. 清理所有处于终止状态的容器:docker rm $(docker ps -a -q)

关于仓库的:
    1. 用户无需登录查找官方仓库中的镜像:docker search,查找的时候通过-s N参数可以指定仅显示评价为N星以上的镜像
    2. 私有仓库上传标记的镜像:docker push
    3. 查看私有仓库中的镜像:curl 仓库地址

关于数据卷的:
    1. 挂载一个主机目录作为数据卷: docker run -d -P --name web -v /src/webapp:/opt/webapp training/webapp python app.py,使用-v标记也可以指定挂载一个本地主机的目录到容器中去,命令加载主机的/src/webapp目录到容器的/opt/webapp目录,本地目录的路径必须是绝对路径,如果目录不存在Docker会自动为你创建它;
    2. 设定只读,通过:ro指定为只读:docker run -d -P --name web -v /src/webapp:/opt/webapp:ro training/webapp python app.py;
    3. 在主机里查看指定容器的信息:docker inspect 容器name;
    4. 如果有持续更新的数据需要在容器之间共享,最好创建数据卷容器:docker run -d -v /dbdata --name dbdata training/postgres echo Data-only container for postgres;
    5. 其他容器中使用--volumes-from来挂载dbdata容器中的数据卷:docker run -d --volumes-from dbdata --name db1 training/postgres;
    6. 可以使用超过一个的--volumes-from参数来指定从多个容器挂载不同的数据卷,也可以从其他已经挂载了数据卷的容器来级联挂载数据卷:docker run -d --name db3 --volumes-from db1 training/postgres;
    7. 使用--volumes-from参数所挂载数据卷的容器自己并不需要保持在运行状态。如果删除了挂载的容器(包括 dbdata、db1 和 db2),数据卷并不会被自动删除。如果要删除一个数据卷,必须在删除最后一个还挂载着它的容器时使用  docker rm -v命令来指定同时删除关联的容器。这可以让用户在容器之间升级和移动数据卷。
    8. 利用数据卷容器备份:使用--volumes-from标记来创建一个加载dbdata容器卷的容器,并从主机挂载当前目录到容器的/backup目录,docker run --volumes-from dbdata -v $(pwd):/backup ubuntu tar cvf /backup/backup.tar /dbdata,容器启动后,使用了tar命令来将dbdata卷备份为容器中/backup/backup.tar文件,也就是主机当前目录下的名为backup.tar的文件;
    9. 利用数据卷容器恢复:如果要恢复数据到一个容器,首先创建一个带有空数据卷的容器dbdata2,docker run -v /dbdata --name dbdata2 ubuntu /bin/bash,然后创建另一个容器,挂载dbdata2容器卷中的数据卷,并使用untar解压备份文件到挂载的容器卷中,docker run --volumes-from dbdata2 -v $(pwd):/backup busybox tar xvf /backup/backup.tar,为了查看/验证恢复的数据,可以再启动一个容器挂载同样的容器卷来查看sudo docker run --volumes-from dbdata2 busybox /bin/ls /dbdata;

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值