您的位置:首页 > 运维架构 > Docker

Docker常用命令

2018-06-17 21:25 302 查看
容器相关操作docker create # 创建一个容器但是不启动它示例:1.使用docker镜像nginx:latest创建一个容器,并将容器命名为myrunoobdocker create --name myrunoob nginx:latest 09b93464c2f75b7b69f83d56a9cfc23ceb50a48a9db7652ee4c27e3e2cb1961f
docker stop # 停止容器运行,发送信号SIGTERMdocker start # 启动一个停止状态的容器docker restart # 重启一个容器示例:1.启动|停止|重启容器myrunoobdocker start|stop|restart myrunoob
docker rm # 删除一个容器-f :通过SIGKILL信号强制删除一个运行中的容器-l :移除容器间的网络连接,而非容器本身-v :-v 删除与容器关联的卷示例:1.强制删除容器db01、db02docker rm -f db01、db022.移除容器nginx01对容器db01的连接,连接名dbdocker rm -l db 3.删除容器nginx01,并删除容器挂载的数据卷docker rm -v nginx014.删除老的(一周前创建)容器docker ps -a | grep 'weeks ago' | awk '{print $1}' | xargs docker rm5.删除已经停止的容器docker rm `docker ps -a -q`6.删除所有镜像,小心docker rmi $(docker images -q)
docker kill # 发送信号给容器,默认SIGKILL示例:1.杀掉运行中的容器mynginxdocker kill -s KILL mynginx2.杀掉所有正在运行的容器docker kill $(docker ps -q)
docker pause  #暂停容器中所有的进程。docker unpause  #恢复容器中所有的进程。示例:暂停数据库容器db01提供服务。docker pause db01恢复数据库容器db01提供服务。docker unpause db01获取容器相关信息docker ps # 显示状态为运行(Up)的容器docker ps -a # 显示所有容器,包括运行中(Up)的和退出的(Exited)
docker inspect #检查镜像或者容器的参数,默认返回 JSON 格式。示例:1.docker inspect --format '{{.DockerVersion}}' ubuntu:14.04上面命令的意思是返回 ubuntu:14.04  镜像的 docker 版本 -f, --format= 指定返回值的模板文件2.获取Container IP地址(Container状态必须是Up)docker inspect id | grep IPAddress | cut -d '"' -f 43.获取端口映射docker inspect -f '{{range $p, $conf := .NetworkSettings.Ports}} {{$p}} -> {{(index $conf 0).HostPort}} {{end}}' id
docker logs # 查看容器的日志(stdout/stderr),-f实时查看示例:查看容器mynginx从2016年7月1日后的最新10条日志。1.docker logs --since="2016-07-01" --tail=10 mynginx
docker events # 得到docker服务器的实时的事件示例:1.从服务器拉取个人动态,可选择时间区间。docker events --since="20150720" --until="20150808"上面命令的意思是拉取个人从 2015/07/20 到 2015/08/08 的个人动态。参数:--since= 开始时间--until= 结束时间
docker port # 显示容器的端口映射docker top # 显示容器的进程信息docker diff # 显示容器文件系统的前后变化
查看容器mynginx的端口映射情况。docker port mymysql3306/tcp -> 0.0.0.0:3306导出容器docker cp # 从容器里向外拷贝文件或目录示例:1.复制容器里的文件到宿主机上docker cp 90af375815d4:/var/jenkins_home/workspace /target/HelloWorld.war ~
docker export # 将容器整个文件系统导出为一个tar包,不带layers、tag等信息。docker import 的逆操作。导出后导入(exported-imported))的容器会丢失所有的提交历史,无法回滚。示例:1.docker export -o ubuntu14.04.tar 94c6b3c3f04a上面命令的意思是将 ID 为 94c6b3c3f04a 容器保存为 ubuntu14.04.tar 文件。参数: -o, --output= Write to a file, instead of STDOUT
docker exec # 在容器里执行一个命令,可以执行bash进入交互式示例:1.docker exec -it 90af375815d4 /bin/bash2.执行容器内的脚本runoob.shdocker exec -it mynginx /bin/sh /root/runoob.sh3.获取环境变量docker exec container_id env

进入容器

attach命令

docker attach [--detach-keys[=[ ] ] ] [--sig-[proxy[=true]] CONTAINER

参数:

--detach-keys[=[]]:指定3退出attach模式的快捷序列,默认是CTRL-p CTRL-q

--no-stdin=true | false:是否关闭标准输入,默认是保持打开的

--sig-proxy=true | false:是否代理收到的系统信号给应用进程,默认为true

exec命令

docker exec [-d | --detach] [--detach-keys[=[] ] [-i | --interactive] [--privileged] [-t | --tty] [-u | --user[=USER]] CONTAINER COMMAND [ARG...]

参数:

-i , --interactive=true | false :打开标准输入接受用户输入命令,默认为false

--privileged=true | false 是否给执行命令以最高权限,默认为false

-t, --tty=true | false : 分配伪终端,默认为false

-u, --user="": 执行命令的用户名或ID


镜像操作docker images # 显示本地所有的镜像列表
docker import # 从一个tar包创建一个镜像,往往和export结合使用示例:1.cat ./ubuntu14.04.tar | sudo docker import - ubuntu:14.04上面命令的意思是使用 ./ubuntu14.04.tar 文件创建 ubuntu:14.04 的镜像,默认会从远端拉取文件。
docker build # 使用Dockerfile创建镜像(推荐)docker commit # 从容器创建镜像docker rmi # 删除一个镜像
docker load # 从一个tar包创建一个镜像,和save配合使用示例:1.docker load -i ubuntu14.04.tar上面命令的意思是将 ubuntu14.04.tar 文件载入镜像中。参数: -i, --input= Read from a tar archive file, instead of STDIN 加载的tar文件
docker save # 将一个镜像保存为一个tar包,带layers和tag信息,docker load 的逆操作。保存后再加载(saved-loaded)的镜像不会丢失提交历史和层,可以回滚。示例:1.docker save -o ubuntu14.04.tar ubuntu:14.04上面命令的意思是将镜像 ubuntu:14.04 保存为 ubuntu14.04.tar 文件。参数: -o, --output= Write to an file, instead of STDOUT 输出到的文件
docker history # 显示生成一个镜像的历史命令示例:1.docker history -H harrysun/lnmp:0.1上面命令的意思是查看 harrysun/lnmp:0.1 镜像的历史。 -H, --human=true Print sizes and dates in human readable format 以可读的格式打印镜像大小和日期 --no-trunc=false Don't truncate output 显示完整的提交记录 -q, --quiet=false Only show numeric IDs 仅列出提交记录ID
docker tag # 为镜像起一个别名示例:1.将镜像ubuntu:15.10标记为 runoob/ubuntu:v3 镜像。docker tag ubuntu:15.10 runoob/ubuntu:v3镜像仓库(registry)操作docker login # 登录到一个registrydocker logout #运行后从指定服务器登出,默认为官方服务器。docker search # 从registry仓库搜索镜像docker pull # 从仓库下载镜像到本地docker push # 将一个镜像push到registry仓库中docker其他命令使用示例docker rundocker run :创建一个新的容器并运行一个命令-a stdin  指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;-C 共享CPU--cidfile=“” 将容器的ID标识写入文件-d   后台运行容器,并返回容器ID;--dns 8.8.8.8 指定容器使用的DNS服务器,默认和宿主一致;-e, --env=[]         指定环境变量,容器中可以使用该环境变量 --env-file=[]       指定环境变量文件,文件格式为每行一个环境变量--expose=[] 指定容器暴露的端口,即修改镜像的暴露端口-h, --hostname=""        指定容器的主机名  -I 以交互模式运行容器,通常与 -t 同时使用;-t 为容器重新分配一个伪输入终端,通常与 -i 同时使用;--link=[] 添加链接到另一个容器;--name="" 指定容器名字,后续可以通过名字进行容器管理,links特性需要使用名字;-n 允许镜像使用网络--net="bridge" 容器的网络连接类型,支持 bridge/host/none/container: 四种类型;--cpuset="0-2" or --cpuset="0,1,2" 绑定容器到指定CPU运行;-m 设置容器使用内存最大值;-P Docker 会随机映射一个端口到内部容器开放的网络端口。 -p 可以指定要映射的端口,在一个指定端口上只可以绑定一个容器。支持的格式有 ip:hostPort:containerPort | ip::containerPort | hostPort:containerPort。--rm=false               容器停止后自动删除容器(不支持以docker run -d启动的容器) --restart=""             指定容器停止后的重启策略,待详述  -u, --user=""            指定容器的用户 -v, --volume=[]          给容器挂载存储卷,挂载到容器的某个目录  --volumes-from=[]        给容器挂载其他容器上的卷,挂载到容器的某个目录-w, --workdir=""         指定容器的工作目录使用docker镜像nginx:latest以后台模式启动一个容器,并将容器命名为mynginx。docker run --name mynginx -d nginx:latest使用镜像nginx:latest以后台模式启动一个容器,并将容器的80端口映射到主机随机端口。docker run -P -d nginx:latest使用镜像nginx:latest以后台模式启动一个容器,将容器的80端口映射到主机的80端口,主机的目录/data映射到容器的/data。docker run -p 80:80 -v /data:/data -d nginx:latest使用镜像nginx:latest以交互模式启动一个容器,在容器内执行/bin/bash命令。docker run -it nginx:latest /bin/bashroot@b8573233d675:/# 可以通过-link name:alias命令连接指定容器,Docker 在两个互联的容器之间创建了一个安全隧道,而且不用映射它们的端口到宿主主机上,从而避免了暴露数据库端口到外部网络上。使用 –name 选项可以为容器自定义命名,容器的名字必须是唯一的。然后创建一个web容器,连接到数据库容器。docker run -d -P --name web --link db:db training/webapp python app.py-p和-P用法docker run -d -P training/webapp python app.pydocker run -d -p 5000:5000 training/webapp python app.pydocker buildOPTIONS说明:--add-host 添加自定义的主机到IP映射(主机:ip)--build-arg=[] 设置镜像创建时的变量;--cpu-shares 设置 cpu 使用权重;--cpu-period 限制 CPU CFS周期;--cpu-quota 限制 CPU CFS配额;--cpuset-cpus 指定使用的CPU id;--cpuset-mems 指定使用的内存 id;--disable-content-trust 忽略校验,默认开启;-f ,--file 指定要使用的Dockerfile路径;--force-rm 设置镜像过程中删除中间容器;--isolation 使用容器隔离技术;--label=[] 设置镜像使用的元数据;-m,--memory 设置内存最大值;--memory-swap 设置Swap最大值为内存+swap,"-1"表示不限swap;--no-cache 创建镜像的过程不使用缓存;--pull 尝试去更新镜像的新版本;-q 安静模式,成功后只输出镜像ID;--rm 设置镜像成功后删除中间容器;--shm-size 设置/dev/shm的大小,默认值是64M;--ulimit Ulimit配置。--tag, -t, 镜像的名字及tag,通常name:tag或者name格式;可以在一次构建中为一个镜像设置多个tag
实例:1.使用当前目录的Dockerfile创建镜像。docker build -t runoob/ubuntu:v1 . 2.使用URL github.com/creack/docker-firefox 的 Dockerfile 创建镜像。docker build github.com/creack/docker-firefox3. 搬运工人将标准输入输入的指定文件打包进去docker build -<Dockerfile4. 支持压缩格式bzip2,gzip和xz。docker build -< context.tar.gz
阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: