03-Docker-容器命令
banner 2020-08-03 09:07:54 docker
# 容器命令
# 下载一个镜像
docker pull centos
1
# 删除 <none>
镜像
docker image prune -f
1
# 新建并启动容器
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
1
# OPTIONS说明(常用)
- --name="容器新名字":为容器指定一个名称;
- -d: 后台运行容器,并返回容器ID,也即启动守护式容器;
- -i: 以交互模式运行容器,通常与 -t 同时使用;
- -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
- -P: 随机端口映射;-p:指定端口映射,有以下四种格式
- ip:hostPort:containerPort
- ip::containerPort
- hostPort:containerPort
- containerPort
- -p: 将容器的端口发布到主机
- -e: 设置环境变量
- --restart: 设置重启策略
no
– 容器退出时不要自动重启。这个是默认值。on-failure[:max-retries]
– 只在容器以非0状态码退出时重启。可选的,可以退出docker daemon尝试重启容器的次数。always
– 不管退出状态码是什么始终重启容器。当指定always时,docker daemon将无限次数地重启容器。容器也会在daemon启动时尝试重启,不管容器当时的状态如何。
- -v: 挂在数据卷
# 启动交互式容器
使用镜像CentOS:latest以交互模式启动一个容器,在容器内执行/bin/bash命令。
docker run -it centos /bin/bash
1
# 更新一个或多个容器配置
docker update [OPTIONS] CONTAINER [CONTAINER...]
1
# OPTIONS
- --blkio-weight 块IO(相对权重),介于10到1000之间,或者为0禁用(默认为0)
- --cpu-period 限制CPU CFS(完全公平的调度程序)期限
- --cpu-quota 限制CPU CFS(完全公平的调度程序)配额
- --cpu-rt-period API 1.25以上 将CPU实时时间限制为微秒
- --cpu-rt-runtime API 1.25以上 将CPU实时运行时间限制为微秒
- --cpu-shares , -c CPU份额(相对重量)
- --cpus API 1.29+ CPU数量
- --cpuset-cpus 允许执行的CPU(0-3,0,1)
- --cpuset-mems 允许执行的MEM(0-3,0,1)
- --kernel-memory 内核内存限制
- --memory , -m 内存限制
- --memory-reservation 内存软限制
- --memory-swap 交换限制等于内存加交换:“-1”以启用无限交换
- --pids-limit API 1.40+ 调整容器pids限制(将-1设置为无限)
- --restart 容器退出时重新启动策略以应用
# 列出当前所有正在运行的容器
docker ps [OPTIONS]
1
# OPTIONS说明(常用)
- -a: 列出当前所有正在运行的容器+历史上运行过的
- -l: 显示最近创建的容器。
- -n: 显示最近n个创建的容器。
- -q: 静默模式,只显示容器编号。
- --no-trunc: 不截断输出。
# 退出容器
exit
容器停止退出ctrl+P+Q
容器不停止退出
# 启动容器
docker start 容器ID或者容器名
1
# 重启容器
docker restart 容器ID或者容器名
1
# 停止容器
docker stop 容器ID或者容器名
1
# 强制重启容器
docker kill 容器ID或者容器名
1
# 删除已停止的容器
docker rm 容器ID
1
# 一次性删除多个容器
docker rm -f $(docker ps -a -q)
docker ps -a -q | xargs docker rm
1
2
2
# 启动守护式容器
docker run -d
1
# 查看容器日志
docker logs -f -t --tail 容器ID
1
- -t 是加入时间戳
- -f 跟随最新的日志打印
- --tail 数字 显示最后多少条
# 查看容器内运行的进程
docker top 容器ID
1
# 查看容器内部细节
docker inspect 容器ID
1
# 进入正在运行的容器并以命令行交互
docker exec -it 容器ID bashShell
1
重新进入
docker attach 容器ID
1
上述两个区别
- attach 直接进入容器启动命令的终端,不会启动新的进程
- exec 是在容器中打开新的终端,并且可以启动新的进程
# 从容器内拷贝文件到主机上
docker cp 容器ID:容器内路径 目的主机路径
1