003-docker命令大全
前提
docker 命令 --help
docker info : 显示 Docker 系统信息,包括镜像和容器数
docker info
docker version :显示 Docker 版本信息
docker version
1、镜像仓库操作
登陆到Docker Hub docker login -u 用户名 -p 密码 登出Docker Hub docker logout
docker search:从Docker Hub查找镜像
docker search nginx
# 将本地的镜像上传到镜像仓库,要先登陆到镜像仓库 # docker push + 仓库名:标签 docker push repro1:v1.0
docker pull : 从镜像仓库中拉取或者更新指定镜像
# 从镜像仓库中拉取或者更新指定镜像 # docker pull + 镜像名字:版本号 docker pull nginx:latest
支持的版本可以:https://hub.docker.com/ 查询
2、本地镜像管理
docker images : 列出本地镜像。
本地镜像列表:docker images
本地镜像中REPOSITORY为ubuntu的镜像列表:docker images ubuntu
docker rmi : 删除本地一个或多少镜像。 -f 强制删除
docker rmi mynginx:1.0 mynginx:2.0
# 删除未标记或未用过的镜像
$ docker image prune
# 删除未使用过的镜像
$ docker image prune -a
docker build 命令用于使用 Dockerfile 创建镜像,docker build + 目录,.代表当前目录,-t表示加标签,-f Dockerfile 文件的位置
$ docker build -t mynginx:1.0 .
docker tag : 给镜像加标记,标记本地镜像,将其归入某一仓库。docker tag 镜像标签 新镜像标签名
$ docker tag mynginx:1.0 lb/nginx1
docker save : 将指定镜像保存成 tar 归档文件,docker save 镜像 > 文件
$ docker save mynginx:1.0 > mynginx_v1.tar
docker load : 从.tar文件载入镜像: docker load -i .tar文件
$ docker load -i mynginx_v1.tar
docker history : 查看指定镜像的创建历史
docker import : 从归档文件中创建镜像。
3、容器生命周期管理
docker run:创建一个新的容器并运行
docker run + 选项 + 镜像 + 命令。
选项常用:--name 名称;-i 以交互模式运行容器;-t 为容器重新分配一个伪输入终端; -p: 指定端口映射,格式为:主机(宿主)端口:容器端口; -d: 后台运行容器,并返回容器ID;-e username="ritchie": 设置环境变量;--env-file=[]: 从指定文件读入环境变量;-expose=[]: 开放一个端口或一组端口;--volume , -v: 绑定一个卷
命令常用:/bin/bash 命令
docker run -it -p 8088:80 nginx /bin/bash
docker create:创建一个新的容器但不启动它
参数同docker run
docker start/stop/restart/kill/rm/pause/unpause命令
注意是在docker run之后又容器了,才能进行各种操作。
docker ps -a -q // 查看所有容器ID docker stop $(docker ps -a -q) // stop停止所有容器
docker exec :在运行的容器中执行命令
# 进入容器
docker exec -it 9df70f9a0714 /bin/bash
4、容器操作
简单命令
docker ps : 列出容器
docker inspect cid : 获取容器/镜像的元数据。
docker top cid:查看容器中运行的进程信息,支持 ps 命令参数。
docker attach cid:连接到正在运行中的容器。带上--sig-proxy=false来确保CTRL-D或CTRL-C不会关闭容器。
docker events : 从服务器获取实时事件
docker logs cid: 获取容器的日志
docker wait cid : 阻塞运行直到容器停止,然后打印出它的退出代码。
docker export cid :将文件系统作为一个tar归档文件导出到STDOUT。
# 将id为a404c6c174a2的容器按日期保存为tar文件。 docker export -o mysql-`date +%Y%m%d`.tar a404c6c174a2 mysql-`date +%Y%m%d`.tar mysql-20230221.tar
docker port cid:用于列出指定的容器的端口映射,或者查找将 PRIVATE_PORT NAT 到面向公众的端口。
docker stats cid : 显示容器资源的使用情况,包括:CPU、内存、网络 I/O 等。
四、容器的rootfs命令
docker commit :从容器创建一个新的镜像。
-a :提交的镜像作者;-c :使用Dockerfile指令来创建镜像;-m :提交时的说明文字;-p :在commit时,将容器暂停。
# 将容器a404c6c174a2 保存为新的镜像,并添加提交人信息和说明信息。 docker commit -a "runoob.com" -m "my apache" a404c6c174a2 mymysql:v1
docker cp :用于容器与主机之间的数据拷贝。
将主机/www/runoob目录拷贝到容器96f7f14e99ab的/www目录下。 docker cp /www/runoob 96f7f14e99ab:/www/ 将主机/www/runoob目录拷贝到容器96f7f14e99ab中,目录重命名为www。 docker cp /www/runoob 96f7f14e99ab:/www 将容器96f7f14e99ab的/www目录拷贝到主机的/tmp目录中。 docker cp 96f7f14e99ab:/www /tmp/
docker diff : 检查容器里文件结构的更改。