经常使用命令可分为如下几种php
1.容器生命周期管理 # docker [run|start|stop|restart|kill|rm|pause|unpause] 2.容器操做运维 # docker [ps|inspect|top|attach|events|logs|wait|export|port] 3.容器rootfs命令 # docker [commit|cp|diff] 4.镜像仓库 # docker [login|pull|push|search] 5.本地镜像管理 # docker [p_w_picpaths|rmi|tag|build|history|save|import] 6.其它命令 # docker [info|version]
镜像相关操做命令:linux
//建立镜像的方法有三种 //基于已有镜像的容器建立 //基于本地模板导入 //基于Dockerfile文件建立 commit 基于已有镜像的容器再生成一个新的镜像 # docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]] -m,--message="" 提交信息,为镜像描述内容 -a,--author="" 做者信息 -p,--pause=true 提交时暂停容器运行 My_Container:1 是提交的镜像名称和版本 # docker commit -m "Centos7 x64 First Image" -a "Loren" 33d619155d03 My_centos7:1 import 基于本地模板导入容器快照,将一个容器快照文件导入本地 # cat centos.tar | docker import - test/centos:v1.0 build 根据Dockerfile文件建立一个新的镜像 # docker build [OPTIONS] PATH | URL | - -t 设定镜像名称及其标示号 -f,--file=Dockerfile 指定Dockerfile文件路径 # docker build -t test:2 -f /opt/ search Image_name 在docker index中搜索p_w_picpath --automated=false -s N, --stars=0 指定评价为N星级以上的镜像 # docker search centos6 pull Image_name 从docker register server 中下拉p_w_picpath或者repository # docker pull centos # docker pull centos:centos6 # docker pull dl.dockerpool.com:5050/centos:6.8 指定网站下载 push 推送一个p_w_picpath或者repository到registry 上传以前要把上传的p_w_picpath的tag修改成 hup用户名/镜像名字:tag 如 # docker tag centos6.8:v1 644597521/centos6.8:v1 p_w_picpaths 显示本地的全部镜像列表 rmi 删除指定id的镜像 tag 修改镜像名 # docker tag test:1 My_p_w_picpath:v2 修改test标记好为1的名称为My_p_w_picpath标记号为v2 save 保存镜像到本地文件 Usage: docker save [OPTIONS] IMAGE [IMAGE...] -o, --output="" # docker save -o centos_6.4.tar centos6.4:v1 # 导出本地的centos6.4:v1镜像为centos_6.4.tar文件 load 将本地文件导入到本地镜像库 Usage:docker load [OPTIONS] -i, --input="" # docker load < centos_6.4.tar # 将centos_6.4.tar文件导入到本地镜像列表 inspect 显示镜像或容器的信息。返回的是JSON格式信息,若只要其中一项内容,可使用-f指定
容器经常使用操做命令:git
run 运行一个新的container # Usage:docker run [OPTIONS] IMAGE [COMMAND] [ARG...] -a,--attack -i,--interactive=false 以交互模式运行容器,一般和-t搭配 -t,--tty=false 分配一个伪输入终端 -d 后台运行 -P 容许外部访问容器全部开启的端口 -p 端口映射 -p 80:80 --name 指定启动后容器的名字 # docker run -i -t centos # docker run -i -t -d centos /bin/bash # docker run -i -t -d --name My_Container centos /bin/bash # docker run -i -t -d -p 80:80 --name My_Container centos /bin/bash -v,--volume=[] 建立数据卷 /mnt 在容器中建立一个数据卷 /webapp:/src/webapp 目录挂载。将本地的webapp目录挂载到容器的/src/webapp。容器和宿主机的挂载目录都会同时变化 /test.txt:/tmp/text.txt 文件挂载。将本地的/test.txt文件挂载到容器的/tmp/text.txt(注意,只能修改容器挂载内的文件,不然不一样步) # docker run -ti -v /da --name=dbdata centos 建立一个容器dbdata,并建立一个数据卷挂载容器dbdata的/da目录 --volume-from 共享挂载数据卷 # docker run -ti -v /mnt --name db centos 建立一个数据卷容器db,并建立一个数据卷挂载到容器db的/mnt目录下 # docker run -ti --volume-from=db --name db1 centos # db1容器挂载db 容器中的数据卷 # docker run -ti --volume-from=db --name db2 centos # db2容器挂载db 容器中的数据卷 此时三个容器db,db1,db2均可以分享目录/mnt --link 链接其余容器 --link NAME:Alias Name要创建链接的容器名,Alias链接的容器的别名 # docker run -ti -d -P --name web --link lamp:lamp centos6.4 /bin/bash 新建容器web和已经运行的容器lamp链接 ps 显示容器的列表 -a 显示全部信息 -q 只显示ID # docker inspect 5d20c5528521 显示容器的详细信息 # docker ps -a -q ID # docker inspect -f "{{ .State.Pid }}" 5d20c5528521 显示运行容器的PID stop|start|restart 中止|启动|重启容器 exec 进入容器(推荐使用) # docker exec [OPTIONS] CONTAINER COMMAND [ARG...] # docker exec -t -i 216c623071b3 /bin/bash attack CONTAINER_ID 进入容器 # docker attack 216c623071b3 使用 attach 命令有时候并不方便。当多个窗口同时 attach 到同一个容器的时候,全部窗口都会同步显示。当某个窗口因命令阻塞时,其余窗口也没法执行操做了 nsenter # yum install util-linux # PID=$(docker inspect -f "{{ .State.Pid }}" 5d20c5528521) # nsenter --target $PID --mount --uts --ipc --net --pid # nsenter --target 10981 --mount --uts --ipc --net --pid -t, --target <pid> 要获取名字空间的目标进程 -m, --mount[=<file>] enter mount namespace -u, --uts[=<file>] enter UTS namespace (hostname etc) -i, --ipc[=<file>] enter System V IPC namespace -n, --net[=<file>] enter network namespace -p, --pid[=<file>] enter pid namespace rm 删除一个容器 -f, --force=true 强制删除 -l, --link=false 删除容器的链接,但保留容器 -v, --volumes=false 删除容器挂载的数据卷 export 导出容器,导出一个已经建立的容器到一个文件,无论此时这个容器是否处于运行状态 -o, --output="" # docker export 929bf12bc6ea > centos_6.4_php.tar
其它经常使用命令github
docker -H 127.0.0.1:1234 -d & 修改服务端监听本地的TCP链接1234端口 volume 管理docker的文件 login 登陆仓库https://hub.docker.com/,登陆成功后信息保存文件在用户家目录/.docker/config.json 输入用户,密码,邮件。 下载 .bashrc_docker,并将内容放到 .bashrc 中 # wget -P ~ https://github.com/yeasy/docker_practice/raw/master/_local/.bashrc_docker; # echo "[ -f ~/.bashrc_docker ] && . ~/.bashrc_docker" >> ~/.bashrc # source ~/.bashrc 这个文件中定义了不少方便使用 Docker 的命令,例如 docker-pid 能够获取某个容器的 PID; 而 docker-enter 能够进入容器或直接在容器内执行命令
http://liumissyou.blog.51cto.com/4828343/1792500web