docker 常用命令

search

搜索镜像

docker search nginx

pull

拉取镜像,不添加tag的话,默认使用latest

docker pull nginx

rm

删除容器

docker rm ID/NAMES
#删除所有的container
docker rm $(docker ps -a -q)

rmi

删除镜像

docker rmi ID/NAMES
#删除所有的container
docker rmi $(docker images -q)

run

构建并运行新容器

docker  run -itd -p 8888:8888 -v /d/tensorflow/:/tensorflow tensorflow/tensorflow:2.2.0-jupyter /bin/bash
#末尾加/bin/bash相当于,在容器启时执行/bin/bash命令
  • -i 保持和docker容器内的交互。运行docker命令结束后,容器依然存活,没有退出。
  • -t 分配一个伪TTY
  • -d 后台运行并打印容器Id
  • –rm 当容器退出时自动将其移除

eg:

  1. Mysql
docker run --name mysql -v /d/MySQL/conf:/etc/mysql/conf.d -v /d/MySQL/logs:/logs -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456-d mysql
  1. ES
docker run -itd --name elasticsearch -p 9200:9200 -p 9300:9300 -e ES_JAVA_OPTS="-Xms2g -Xmx2g" -e "discovery.type=single-node" elasticsearch:7.14.2

commit

#提交期间暂停容器
docker commit CONTAINER [REPOSITORY[:TAG]]

inspect

#查看镜像/容器信息
docker inspect ID/NAMES
#查看 容器ip 地址
docker inspect --format='{{.NetworkSettings.IPAddress}}' ID/NAMES
docker exec -it ID/NAMES ip addr
#容器运行状态
docker inspect --format '{{.Name}} {{.State.Running}}' ID/NAMES

login

docker login -u 用户名 -p 密码

logout

docker logout

push

#往远程仓库push:需要和远程仓库名一致.可以使用tag命令重新创建镜像
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
#eg: docker tag centos1 1109065487/centos1:1.0

docker push [OPTIONS] NAME[:TAG]
#eg: docker push 1109065487/centos1:1.0

logs

docker logs -tf --tail 10 ID/NAMES

pause/unpause

#暂停容器
docker pause ID/NAMES
#取消暂停容器
docker unpause ID/NAMES

port

#查看docker完整命令
docker ps -a --no-trunc

ps

#查看docker完整命令
docker ps -a --no-trunc
  • -a 显示所有容器 (默认运行中)
  • -f 过滤
  • –format 格式化输出(使用Go模板)
  • -n 显示最近创建的n个容器
  • -l 显示最近创建的1个容器
  • –no-trunc 不截断输出
  • -q 只展示容器Id
  • -s 容器大小(还有镜像大小)

export/import

导出/导入容器(只能一个)

docker export -o xx [OPTIONS] CONTAINER
#eg: docker export 11 centos2

# 导入容器以生成镜像
docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]]
#eg: docker import 11 centos:import2

save/load

保存/加载镜像(可多个)

# -o 指定输出文件(tar格式存档)代替输出到 STDOUT
docker save -o xx IMAGE [IMAGE...]

# -i 从tar存档文件代替 STDIN 读取
docker load -i xx
  • docker save 保存的是镜像(image),docker export 保存的是容器(container);
  • docker load 用来载入镜像包,docker import 用来载入容器包,但两者都会恢复为镜像;
  • docker load 不能对载入的镜像重命名,而 docker import 可以为镜像指定新名称。

export 和 import 导出的是一个容器的快照, 不是镜像本身, 也就是说没有 layer。你的 dockerfile 里的 workdir, entrypoint 之类的所有东西都会丢失,commit 过的话也会丢失。容器的快照文件将丢弃所有的历史记录和元数据信息(即仅保存容器当时的快照状态),而镜像存储文件将保存完整记录,体积也更大。

start/stop

#启动容器
docker start ID/NAMES
#停止容器
docker stop ID/NAMES

top

#查看容器中进程信息
docker top ID/NAMES

其它:

#查看镜像的依赖镜像
docker image inspect --format='{{.RepoTags}} {{.Id}} {{.Parent}}' $(docker image ls -q --filter since=f9efa309632c)

#停止所有容器
docker ps -a | grep "Exited" | awk '{print $1}' | xargs docker stop
#删除所有容器
docker ps -a | grep "Exited" | awk '{print $1}' | xargs docker rm

正常退出但不关闭容器 Ctrl+P+Q

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值