美文网首页
docker--command

docker--command

作者: amazing_bing | 来源:发表于2016-08-08 15:39 被阅读0次

    Docker 常用的一些命令

    #docker run -i -t ubuntu /bin/bash

    root@80952d0ecfba:/# apt-get update

    root@80952d0ecfba:/# apt-get install vim

    root@80952d0ecfba:/# apt-get install git

    root@80952d0ecfba:/# apt-get install wget

    root@80952d0ecfba:/# exit

    #docker ps -a

    #列出最近一次启动的container

    #docker commit --author="amazing_bing@outlook.com" 71a95aa007f1 docker/test

    #命令中,指定了要提交的修改过的容器的ID、目标镜像仓库、镜像名。commit提交的知识创建容器的镜像与容器的当前状态之间的差异部分,很轻量。

    #docker images

    #查看新创建的镜像

    #docker rmi docker/test

    #删除镜像文件

    #docker rm `docker ps -a -q`

    #删除所有容器

    推送自己的镜像文件

    # docker login

    # docker tag centos6.3-base frankzfz/centos6.3-base

    #重命名自己的docker镜像名称

    #docker push frankzfz/centos6.3-base:latest

    #推送

    #docker run -d -p 8080:5000 frankzfz/centos6.3-base

    #-d 表示守护形式后台一直运行该容器

    #-p 80:8080 Dockerfile 中暴露了容器的 8080 端口,将其映射到本机的 80 端口

    docker参数详解

    Useage of docker

    -D默认false允许调试模式(debugmode)

    -H默认是unix:///var/run/docker.sock tcp://[host[:port]]来绑定或者unix://[/path/to/socket]来使用(二进制文件的时候),当主机ip host=[0.0.0.0],(端口)port=[4243]或者path=[/var/run/docker.sock]是缺省值,做为默认值来使用

    -api-enable-cors默认flase允许CORS header远程api

    -b默认是空,附加在已存在的网桥上,如果是用'none'参数,就禁用了容器的网络

    -bip默认是空,使用提供的CIDR(ClasslessInter-Domain Routing-无类型域间选路)标记地址动态创建网桥(dcoker0),和-b参数冲突

    -d默认false允许进程模式(daemonmode)

    -dns默认是空,使docker使用指定的DNS服务器

    -g默认是"/var/lib/docker":作为docker使用的根路径

    -icc默认true,允许inter-container来通信

    -ip默认"0.0.0.0":绑定容器端口的默认Ip地址

    -iptables默认true禁用docker添加iptables规则

    -mtu默认1500 :设置容器网络传输的最大单元(mtu)

    -p默认是/var/run/docker.pid进程pid使用的文件路径

    -r默认是true重启之前运行的容器

    -s默认是空,这个是docker运行是使用一个指定的存储驱动器

    -v默认false打印版本信息和退出

    7、docker run命令详解

    Usage: docker run [OPTIONS] IMAGE[:TAG] [COMMAND] [ARG...]

    Run a command in a new container

    -a=map[]:附加标准输入、输出或者错误输出

    -c=0:共享CPU格式(相对重要)

    -cidfile="":将容器的ID标识写入文件

    -d=false:分离模式,在后台运行容器,并且打印出容器ID

    -e=[]:设置环境变量

    -h="":容器的主机名称

    -i=false:保持输入流开放即使没有附加输入流

    -privileged=false:给容器扩展的权限

    -m="":内存限制(格式:, unit单位= b, k, m or g)

    -n=true:允许镜像使用网络

    -p=[]:匹配镜像内的网络端口号

    -rm=false:当容器退出时自动删除容器(不能跟-d一起使用)

    -t=false:分配一个伪造的终端输入

    -u="":用户名或者ID

    -dns=[]:自定义容器的DNS服务器

    -v=[]:创建一个挂载绑定:[host-dir]:[container-dir]:[rw|ro].如果容器目录丢失,docker会创建一个新的卷

    -volumes-from="":挂载容器所有的卷

    -entrypoint="":覆盖镜像设置默认的入口点

    -w="":工作目录内的容器

    -lxc-conf=[]:添加自定义-lxc-conf="lxc.cgroup.cpuset.cpus = 0,1"

    -sig-proxy=true:代理接收所有进程信号(even in non-tty mode)

    -expose=[]:让你主机没有开放的端口

    -link="":连接到另一个容器(name:alias)

    -name="":分配容器的名称,如果没有指定就会随机生成一个

    -P=false: Publish all exposed ports to thehost interfaces公布所有显示的端口主机接口

    docker常用命令总结

    docker pull  <镜像名:tag>  #从官网拉取镜像

    docker search <镜像名>  #搜索在线可用镜像名

    查询容器、镜像、日志

    docker top #显示容器内运行的进程

    docker images  #查询所有的镜像,默认是最近创建的排在最上。

    docker ps #查看正在运行的容器

    docker ps -l #查看最后退出的容器的ID

    docker ps -a #查看所有的容器,包括退出的。

    docker logs  {容器ID|容器名称}  #查询某个容器的所有操作记录。

    docker logs -f  {容器ID|容器名称}  #实时查看容易的操作记录。

    删除容器与镜像

    docker rm$(docker ps -a -q)#删除所有容器

    docker rm <容器名or ID>    #删除单个容器

    docker rmi    #删除单个镜像

    docker rmi$(docker images | grepnone| awk'{print $3}'| sort -r)#删除所有镜像

    启动停止容器

    docker stop  <容器名or ID>   #停止某个容器

    docker start  <容器名or ID>  #启动某个容器

    docker kill    <容器名or ID>  #杀掉某个容器

    容器迁器

    docker export > /home/export.tar  #导出

    cat /home/export.tar | sudo docker import  -  busybox-1-export:latest  #导入export.tar文件

    docker save debian> /home/save.tar#将debian容器打包

    docker load< /home/save.tar#在另一台服务器上加载打包文件

    save和export的对比参考地址:

    Docker的save和export命令的区别_人人IT网

    运行一个新容器

    #运行一个新容器,同时为它命名、端口映射。以debian02镜像为例

    docker run -h="redis-test"  --name redis-test -d -p 51000:22 -p51001:3306 -p 51003:6379 -p 51004:6381 -p 51005:80 -p 51006:8000 -p 51007:8888  debian02 /etc/rc.local

    #从container中拷贝文件,当container已经关闭后,在里面的文件还可以拷贝出来。

    sudo docker cp 7bb0e258aefe:/etc/debian_version .#把容器中的/etc/debian_version拷贝到当前目录下。

    docker Dockfile镜像制作

    root@yangrong:/data# cat Dockerfile

    FROM ubuntu/testa     #这是基础镜像

    CMD ["/root/start.sh"]  #这是启动命令

    root@yangrong:/data# docker build -t <新镜像名> ./    #生成新的镜像

    Dockerfile 用于编写一个镜像,下面创建了一个新的 Docker 镜像:

    from ubuntu:latest# 基于 ubuntu:latest

    ENV HOSTNAME=changkun# 设置 HOSTNAME 环境变量

    通过docker build构建新镜像:

    $docker build -t changkun .

    其中-t changkun指定了镜像的名字, .标志从当前目录查找 Dockerfile。


    0x03 Dockfile更多参数参考:

    【每日一博】制作可以 SSH 登录的 Docker 镜像 - 推酷

    相关文章

      网友评论

          本文标题:docker--command

          本文链接:https://www.haomeiwen.com/subject/mgdrsttx.html