Docker常用命令

容器相关操作
docker create # 创建一个容器但是不启动它
示例:
1.使用docker镜像nginx:latest创建一个容器,并将容器命名为myrunoob
docker create --name myrunoob nginx:latest 09b93464c2f75b7b69f83d56a9cfc23ceb50a48a9db7652ee4c27e3e2cb1961f

docker stop # 停止容器运行,发送信号SIGTERM
docker start # 启动一个停止状态的容器
docker restart # 重启一个容器
示例:
1.启动|停止|重启容器myrunoob
docker start|stop|restart myrunoob

docker rm # 删除一个容器
-f :通过SIGKILL信号强制删除一个运行中的容器
-l :移除容器间的网络连接,而非容器本身
-v :-v 删除与容器关联的卷
示例:
1.强制删除容器db01、db02
docker rm -f db01、db02
2.移除容器nginx01对容器db01的连接,连接名db
docker rm -l db
3.删除容器nginx01,并删除容器挂载的数据卷
docker rm -v nginx01
4.删除老的(一周前创建)容器
docker ps -a | grep 'weeks ago' | awk '{print $1}' | xargs docker rm
5.删除已经停止的容器
docker rm `docker ps -a -q`
6.删除所有镜像,小心
docker rmi $(docker images -q)

docker kill # 发送信号给容器,默认SIGKILL
示例:
1.杀掉运行中的容器mynginx
docker kill -s KILL mynginx
2.杀掉所有正在运行的容器
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 4
3.获取端口映射
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 mymysql
3306/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/bash
2.执行容器内的脚本runoob.sh
docker exec -it mynginx /bin/sh /root/runoob.sh
3.获取环境变量
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 # 登录到一个registry
docker logout #运行后从指定服务器登出,默认为官方服务器。
docker search # 从registry仓库搜索镜像
docker pull # 从仓库下载镜像到本地
docker push # 将一个镜像push到registry仓库中
docker其他命令使用示例
docker run
docker 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 / bash
root@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.py
docker run -d -p 5000:5000 training/webapp python app.py
docker build
OPTIONS说明:
--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-firefox
3. 搬运工人将标准输入输入的指定文件打包进去
docker build -<Dockerfile
4. 支持压缩格式bzip2,gzip和xz。
docker build -< context.tar.gz

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值