• Docker使用技巧及常用命令


    安装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
  • 相关阅读:
    寒江独钓(0):内核开发上机指导
    异常:Hibernate数据库恢复错误
    天书夜读:从汇编语言到Windows内核编程笔记(4)
    企业WEBGIS网站解决方案
    如何使用国际开源项目构建一个完整的GIS(地理信息)应用系统
    将指定文件夹下的所有文件copy到目标文件夹下
    一些jquery的小知识
    压缩指定目录下指定文件(包括子目录下的文件)
    解压一个rar文件
    关于下载txt文本文挡的问题
  • 原文地址:https://www.cnblogs.com/anqli-java/p/7807723.html
Copyright © 2020-2023  润新知