Docker常用命令

容器操作

停止、启动、杀死、重启一个容器

docker [stop start kill restart]
docker stop Name/ID
docker start Name/ID
docker kill Name/ID
docker restart Name/ID
-t, --time=10 在杀死容器之前尝试停止的秒数,默认值为10

拷贝文件/目录

从容器里面拷贝文件/目录到本地一个路径
docker cp Name:/container_path to_path
docker cp ID:/container_path to_path


从容器里面拷文件到宿主机
docker cp 容器名:容器里面的路径  宿主机的路径 


从宿主机拷文件到容器里面
docker cp 文件路径 容器名:容器里面的路径

解压到指定目录文件夹下
unzip -d ./plugis/analysis analysis-ik-6.6.0.zip

删除镜像

删除一个或者多个镜像
-f, --force=false Force; 
--no-prune=false Do not delete untagged parents
docker rmi image_name

删除所有容器
docker rm `docker ps -a -q`

删除单个容器
-f, --force=false; 
-l, --link=false 删除指定的链接,而不是底层容器
-v, --volumes=false 删除与容器关联的卷
docker rm Name/ID

进入容器

进入docker正在运行的容器环境  需要指定容器的id或name
docker exec -it enrichupgrade /bin/bash
docker exec -it 6d9ae9e18df5 /bin/sh

修改容器资源和策略

更新容器的重启策略
docker update --restart=always f361b7d8465

更新容器内存
docker update -m 500M f361b7d8465
docker update --memory 3000m --memory-swap 4000m f8e1a18e3031

更新 CPU 共享数量
docker update --cpu-shares 512 f361b7d8465

运行临时容器

运行一个临时容器,停止会把此容器自动删除
docker run --rm -d --name=temp-ch yandex/clickhouse-server

保存容器

保存对容器的修改 本地备份
-a, --author="" 作者 
-m, --message="" 提交信息

docker commit ID new_image_name
docker commit ${name} ${name}-backup
//Note:image相当于类,container相当于实例,不过可以动态给实例安装新软件,然后把这个container用commit命令固化成一个image。

限制容器cpu

限制cpu使用率为50%: 
--cpu-period=1000000 --cpu-quota=500000

自定义hosts配置

方案一:
--add-host hadoop1:192.168.10.31 --add-host hadoop2:192.168.10.32
docker run -d --name test1 \
    --add-host test1.a:1.2.3.4 \
    local/test
方案二:
docker-compose.yml 文件指定
test2:
  build: local/test
  extra_hosts:
    test1.a: 1.2.3.4
    test1.b: 4.3.2.1

镜像操作

docker save : 将指定镜像保存成 tar 归档文件。
docker save -o my_ubuntu_v3.tar runoob/ubuntu:v3

docker load : 导入使用 docker save 命令导出的镜像。
docker load -i my_ubuntu_v3.tar

容器查看

查看容器信息

列出当前所有正在运行的container
docker ps

列出所有的container 包括已停止的容器
docker ps -a

列出最近一次启动的container或查询最后一次创建的容器
docker ps -l

docker 查看停止的容器的日志
docker ps -a
然后 docker inspect 对应的容器id 
找到 LogPath

查看一个正在运行的Docker容器的启动命令
docker ps -a --no-trunc

查看docker 获取容器/镜像的元数据详细
docker inspect xxx

查看容器重启次数
docker inspect -f “{{ .RestartCount }}” container-id

查看容器最后一次的启动时间
docker inspect -f “{{ .State.StartedAt }}” container-id

查看docker版本
docker version

显示docker系统的信息
docker info

检索image
docker search image_name

列出镜像列表
-a, --all=false 显示所有图像
--no-trunc=false 不截断输出
-q, --quiet=false 仅显示数字ID
docker images

显示一个镜像的历史
--no-trunc=false 不截断输出
-q, --quiet=false 仅显示数字ID
docker history image_name

查看容器日志

#从一个容器中取日志
-f, --follow=false Follow输出
-t, --timestamps=false 显示时间戳
docker logs Name/ID

实时查看运行的容器的日志
docker logs -f --tail 100 container
docker logs -f -t --tail 10 container

查看指定时间后的日志,只显示最后100行:
docker logs -f -t --since="2021-02-08" --tail=100 CONTAINER_ID

查看最近30分钟的日志:
docker logs --since 30m CONTAINER_ID

查看某时间之后的日志:
docker logs -t --since="2021-02-08T13:23:37" CONTAINER_ID

查看某时间段日志:
docker logs -t --since="2021-02-08T13:23:37" --until "2018-02-09T12:23:37" CONTAINER_ID

查看容器启动命令参数

查看启动命令参数的容器id为 99fa3b77c1e7
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock assaflavie/runlike 99fa3b77c1e7