设为首页 收藏本站
查看: 1029|回复: 0

[经验分享] Docker使用技巧及常用命令

[复制链接]

尚未签到

发表于 2017-11-20 23:42:42 | 显示全部楼层 |阅读模式
安装docker


  •   检查curl包是否安装?

    which curl
  •   如果curl没有安装的话,则先更新apt源,并安装curl,如下:

    apt-get updateapt-get install curlapt-get updatewget -qO- https://get.docker.com/ | sh
  •   设置当前用户为docker用户组,便于解决每次执行docker命令时都需要输入密码。

    # 添加一个新的docker用户组groupadd docker# 添加当前用户到docker用户组里,注意这里的xxoo为ubuntu server登录用户名gpasswd -a xxoo docker# 重启docker后台监护进程service docker restart# 重启之后,尝试一下,是否生效docker version#若还未生效,则系统重启,则生效reboot
  •   启动docker服务,如下:

    service docker start

常见命令


  •   运行容器


        docker run hello-world

  •   显示本地镜像


       docker images

  •   获取镜像


       docker pull ubuntu:12.04

  •   创建一个容器,并让其运行bash


          docker run -t -i ubuntu:12.04 /bin/sh
              说明:-i:表示以“交互模式”运行容器 -t:表示容器启动后会进入其命令行。


  •   利用DocFile来创建镜像


         mkdir sinatracd sinatra/touch Dockerfilevim Dockerfiledocker build -t="ouruser/sinatra:v2" .

  •   运行容器


        docker start [stop| restart] xxx

  •   导出容器


           docker ps -adocker save -o ubuntu.tar.gz ubuntu:14.04 *(保存的是所有这个镜像的版本记录,包括一些历史数据.)*docker export pid > ./ubuntu.tar.gz *(导出的是容器当前所用的镜像内容)*

  •   导入容器


          docker load < /tmp/mynewimage.tar *(docker save 的逆操作)*cat ubuntu.tar | docker import - test/ubuntu:v1.0 *( export 的逆操作)*

  •   删除容器


          docker stop xxxdocker rm xxx
              说明:docker 的文件是放在 /var/lib/docker/containers/ 中的。


  •   保存镜像


     docker commit xxx abc
           说明:这里保存成一个名叫 abc 的镜像,镜像名称中只允许出现小写字母和数字。


  •   删除镜像


      docker rmi abc

  •   获取镜像历史


         docker history abcdocker images --tree *(查看所有镜像的历史过程)*
             说明:只能对本地存在的 docker 镜像执行这个命令。


  •   杀死一个或多个指定容器进程


         docker kill container
             说明:-s “KILL” 自定义发送至容器的信号。


  •   查看一个正在运行容器进程


          docker top container
              说明:也支持 ps 命令参数。


  •   暂停某一容器的所有进程


        docker pause container

  •   恢复某一容器的所有进程


           docker unpause container

  •   标记本地镜像,将其归入某一仓库


             docker tag image name
                说明:-f 覆盖已有标记。


  •   获取容器运行时的输出日志


         docker logs container

  •   docker attach


      docker run -itd ubuntu:14.04 /bin/bashdocker attach 44fc0f0582d9
           说明:docker attach可以attach到一个已经运行的容器的stdin,然后进行命令执行的动作。但是需要注意的是,如果从这个stdin中exit,会导致容器的停止。


  •   docker exec


      docker exec -i name /bin/sh
            只用-i时,由于没有分配伪终端,看起来像pipe执行一样。但是执行结果、命令 返回值都可以正确获取。

      docker exec -it name /bin/sh
           使用-it时,则和我们平常操作console界面类似。而且也不会像attach方式因为退出,导致整个容器退出。

        docker exec -t name /bin/sh
              如果只使用-t参数,则可以看到一个console窗口,但是执行命令会发现由于没有获得stdin的输出,无法看到命令执行情况。

       docker exec -d name /bin/sh a.sh
             在后台执行一个进程。可以看出,如果一个命令需要长时间进程,使用-d参数会很快返回。程序在后台运行。


  •   分层级显示一个镜像或容器的信息


         docker inspect 465c60612e5c
常见容器安装


  •   mysql


       docker search mysql
       docker pull mysql
        docker run --name xmysql-db -e MYSQL_ROOT_PASSWORD=root -d -p 3306:3306 -v /data/mysql_data/:/var/lib/mysql mysql

  •   mongodb


      docker pull mongo
      docker run --name xmongo-db -p 27018:27017 -v /data/my_mongo_data:/data/db -d mongo

  •   jenkins


         docker pull jenkinschown 1000 /data/jenkins_data/
        docker run --name xjenkins -d -p 9000:8080 -p 50000:50000 -v /data/jenkins_data:/var/jenkins_home -e JAVA_OPTS=-Duser.timezone=Asia/Shanghai --env JAVA_OPTS="-Xmx512m -XX:PermSize=256m -XX:MaxPermSize=1024m" -d jenkins

  •   elasticsearch


      docker pull elasticsearch
      docker run --name xelastic-search -d -p 9200:9200 -p 9300:9300 -v /data/esdata:/usr/share/elasticsearch/data elasticsearch

  •   tomcat


        docker pull tomcat
       docker run --name xtomcat -d -v /data/tomcat/webapps/:/usr/local/tomcat/webapps/ -p 8080:8080 -p 9001:9000 tomcat:8

  •   dockerui


        docker run -d -p 9000:9000 --privileged -v /var/run/docker.sock:/var/run/docker.sock dockerui/dockerui

  •   webgoat


      docker pull webgoat/webgoat-7.1
     docker run --name xwebgoat -d -p 8080:8080 webgoat/webgoat-7.1

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-409018-1-1.html 上篇帖子: php相关扩展安装及报错总结 下篇帖子: Ubuntu16.04安装mongodb 及使用
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表