zoukankan      html  css  js  c++  java
  • Docker常用命令<转>

    创建redis服务端
    docker run -p 6379:6379 -d --name redis-server docker.io/redis:3.0.7 redis-server --
    port 6379
    创建redis客户端
    docker run -it --name redis-client2 docker.io/redis:3.0.7 redis-cli -h 172.17.0.1 -p
    6379
    重进开启redis客户端
    docker exec -it redis-client11 redis-cli -h 172.17.0.1 -p 6379
    查看容器的6380端口对应本地机器的IP和端口号
    docker port redis-server2 6380

    又把官方文档过了一遍,总结一下常用命令

    安装Docker:
    • ubuntu安装:curl -s https://get.docker.io/ubuntu/ | sudo sh 

    镜像管理

    docker images:列出本地所有镜像
    docker search <IMAGE_ID/NAME>:查找image
    docker pull <IMAGE_ID>:下载image
    docker push <IMAGE_ID>:上传image
    docker rmi <IMAGE_ID>:删除image
     
     
    容器管理
    docker run -i -t <IMAGE_ID> /bin/bash:-i:标准输入给容器    -t:分配一个虚拟终端    /bin/bash:执行bash脚本
    -d:以守护进程方式运行(后台)
    -P:默认匹配docker容器的5000端口号到宿主机的49153 to 65535端口
    -p <HOT_PORT>:<CONTAINER_PORT>:指定端口号
    - -name: 指定容器的名称
    - -rm:退出时删除容器
     
    docker stop <CONTAINER_ID>:停止container
    docker start <CONTAINER_ID>:重新启动container
    docker ps - Lists containers.
    -l:显示最后启动的容器
    -a:同时显示停止的容器,默认只显示启动状态
    docker attach <CONTAINER_ID> 连接到启动的容器
    docker logs <CONTAINER_ID>  : 输出容器日志
    -f:实时输出
    docker cp <CONTAINER_ID>:path hostpath:复制容器内的文件到宿主机目录上
     
    docker rm <CONTAINER_ID>:删除container
    docker rm `docker ps -a -q`:删除所有容器
    docker kill `docker ps -q`
    docker rmi `docker images -q -a`
    docker wait <CONTAINER_ID>:阻塞对容器的其他调用方法,直到容器停止后退出
    docker top <CONTAINER_ID>:查看容器中运行的进程
    docker diff <CONTAINER_ID>:查看容器中的变化
    docker inspect <CONTAINER_ID>:查看容器详细信息(输出为Json)
    -f:查找特定信息,如docker inspect -f '{{ .NetworkSettings.IPAddress }}'
     

          docker commit -m "comment" -a "author" <CONTAINER_ID>  ouruser/imagename:tag

     
          docker extc -it <CONTAINER> <COMMAND>:在容器里执行命令,并输出结果

     
     
     
    网络管理
    docker run -P:随机分配端口号
    docker run -p 5000:5000:绑定特定端口号(主机的所有网络接口的5000端口均绑定容器的5000端口)
    docker run -p 127.0.0.1:5000:5000:绑定主机的特定接口的端口号
    docker run -d -p 127.0.0.1:5000:5000/udp training/webapp python app.py:绑定udp端口号
    docker port <CONTAINER_ID> 5000:查看容器的5000端口对应本地机器的IP和端口号
    使用Docker Linking连接容器:
    Docker为源容器和接收容器创建一个安全的通道,容器之间不需要暴露端口,接收的容器可以访问源容器的数据
    docker run -d -P --name <CONTAINER_NAME> --link <CONTAINER_NAME_TO_LINK>:<ALIAS>  
     
     
    数据管理
    Data Volumes:volume是在一个或多个容器里指定的特殊目录
    • 数据卷可以在容器间共享和重复使用
    • 可以直接修改容器卷的数据
    • 容器卷里的数据不会被包含到镜像中
    • 容器卷保持到没有容器再使用它
    可以在容器启动的时候添加-v参数指定容器卷,也可以在Dockerfile里用VOLUMN命令添加
    docker run -d -P --name web -v /webapp training/webapp python app.py
    也可以将容器卷挂载到宿主机目录或宿主机的文件上,<容器目录或文件>的内容会被替换为<宿主机目录或文件>的内容,默认容器对这个目录有可读写权限
    docker run -d -P --name web -v <宿主机目录>:<容器目录> training/webapp python app.py
    可以通过指定ro,将权限改为只读
    docker run -d -P --name web -v <宿主机目录>:<容器目录>:ro training/webapp python app.py
    在一个容器创建容器卷后,其他容器便可以通过--volumes-from共享这个容器卷数据,如下:
    docker run -d -v /dbdata --name db1 training/postgres echo Data-only container for postgres
    首先启动了一个容器,并为这个容器增加一个数据卷/dbdata,然后启动另一个容器,共享这个数据卷
    docker run -d --volumes-from db1 --name db2 training/postgres
    此时db2使用了db1的容器卷,当容器db1被删除时,容器卷也不会被删除,只有所有容器不再使用此容器卷时,才会被删除
    docker rm -v:删除容器卷
    除了共享数据外,容器卷另一个作用是用来备份、恢复和迁移数据
    docker run --volumes-from db1 -v /home/backup:/backup ubuntu tar cvf /backup/backup.tar /dbdata
    启动一个容器数据卷使用db1容器的数据卷,同时新建立一个数据卷指向宿主机目录/home/backup,将/dbdata目录的数据压缩为/backup/backup.tar
    docker run -v /dbdata --name dbdata2 ubuntu /bin/bash
    docker run --volumes-from dbdata2 -v /home/backup:/backup busybox tar xvf /backup/backup.tar
    启动一个容器,同时把backup.tar的内容解压到容器的backup
     
    仓库管理
    docker login:登录
    转自 http://blog.csdn.net/zhang__jiayu/article/details/42611469
     
  • 相关阅读:
    javaScript 与JQuery 计算器练习
    git在java项目中配置.gitignore不生效的解决办法
    mysql8主从复制配置
    ES6的Promise实例
    常用正则表达式
    Redis在Windows环境下后台启动
    Redis数据操作命令 二
    Redis数据操作命令
    List集合学习笔记
    MyBatis学习链接
  • 原文地址:https://www.cnblogs.com/winkey4986/p/6066781.html
Copyright © 2011-2022 走看看