Docker 命令

shmaur
2024-02-10
-
-

Docker 官网文档

帮助命令

docker version # docker版本信息
docker info # 系统级别的信息,包括镜像和容器的数量
docker 命令 --help

镜像命令

docker images (查看所有本地主机上的镜像)

# 解释
REPOSITORY      # 镜像的仓库
TAG             # 镜像的标签
IMAGE ID        # 镜像的ID
CREATED         # 镜像的创建时间
SIZE            # 镜像的大小
 
# 可选项
--all , -a      # 列出所有镜像
--quiet , -q    # 只显示镜像的id

docker search (查找镜像 )

# 可选项
filter=STARS=3000 # 搜素出来的镜像就是STARS大于3000的

docker pull (下载镜像)

docker pull mysql:tag 不加tag默认下载最新版本( docker pull mysql:5.7)

dokcer rmi (删除镜像)

docker rmi -f IMAGE ID                        # 删除指定镜像
docker rmi -f IMAGE ID1 IMAGE ID2 IMAGE ID3   # 删除多个镜像
docker rmi -f $(docker images -aq)            # 删除所有镜像

docker run (运行镜像)

# 参数说明
--name=“Name”   #容器名字    tomcat01    tomcat02    用来区分容器
-d              #后台方式运行   (docker run -d 启动后容器立即结束问题)
-it             #使用交互方式运行,进入容器查看内容
-p(小写)       #指定容器的端口     -p 8080:8080
-p              #ip:主机端口:容器端口
-p              #主机端口:容器端口(常用)
-p              #容器端口
-P(大写)        #随机指定端口
通过-it方式进入     
exit     #直接停止容器,并且退出容器
ctrl + p + q   #容器不停止退出

容器命令

docker ps (列出所有运行的容器)

# 参数说明
无参数     #列出当前正在运行的容器
-a        #列出当前正在运行的容器+历史运行的容器,所有容器
-n=?     #显示最近创建的容器
-q        #只显示容器的编号

docker rm (删除容器)

docker rm 容器id                  #删除容器,但是删除不了正在运行的容器
docker rm -f ${docker ps -aq}    #删除所有容器

启动和停止容器操作

docker start 容器id    #启动容器
docker restart 容器id  #重启容器
docker stop 容器id     #停止当前正在运行的容器
docker kill  容器id    #强制停止容器

docker inspect (查看容器元数据)

docker inspect (查看容器元数据)

docker exec | docker attach  (进入当前正在运行的容器)

#容器运行时候一般是后台方式运行有时候需进入容器,修改一些配置通过 -it交互方式进入
后面的/bin/bash的作用是表示载入容器后运行bash ,docker中必须要保持一个进程的运行,要不然整个容器启动后就会马上kill itself,这个/bin/bash就表示启动容器后启动bash。
docker exec -it 容器id /bin/bash
docker attach 容器id

区别:
exec进入容器后通过exit不会停止容器,而attach进入容器后通过exit会停止容器
exec进入容器后开启一个新的终端,attach同样操作的是已运行的容器,可以将本机标准输入(键盘输入)输到容器中,也可以将容器的输出显示在本机的屏幕上,如果你想查看容器运行过程中产生的标准输入输出,用attach

docker cp (容器内文件拷贝到主机)

docker cp 容器id:/容器内路径 /当前宿主机路径
#可以发现容器停止了,依然能进行拷贝,只要容器在数据就在,跟容器状态没有关系
#针对主机文件拷贝到容器内一般是通过挂载来实现

docker commit (提交容器成为一个新的镜像)

docker cmmit -m="描述信息" -a="作者" 容器id 目前镜像名:TAG
实操:官方tomcat镜像webapps目录下没有默认helloworld页面导致访问localhost:8080报404,自己打包一个有默认界面的镜像

# 运行一个容器
1、 docker run -d -p 8080:8080 tomcat

# 进入容器
2、 docker exec -it 0e149242be2  /bin/bash

#将webapps.dist目录下所有文件拷贝到webapps目录下
3、 cp -r webapps.dist/* webapps

#提交改变
4、 docker commit -m="默认tomcat访问界面" -a="lb" 0e149242be2a tomcat02:1.0
 
#查看生成的镜像
5、docker images

docker top  (查看运行中的进程信息)

# 查看容器中运行的进程信息,支持 ps 命令参数。
# docker top mymysql

docker logs (容器日志)

# 获取容器的日志
-f : 跟踪日志输出
--since :显示某个开始时间的所有日志
-t : 显示时间戳
--tail :仅列出最新N条容器日志

# docker logs -f mynginx

# docker logs --since="2016-07-01" --tail=10 mynginx

docker stats (容器资源使用情况)

# 显示容器资源的使用情况,包括:CPU、内存、网络 I/O 等。

-all , -a :显示所有的容器,包括未运行的。
--format :指定返回值的模板文件。
--no-stream :展示当前状态就直接退出了,不再实时更新。
--no-trunc :不截断输出。

输出详情
CONTAINER ID 与 NAME: 容器 ID 与名称。
CPU % 与 MEM %: 容器使用的 CPU 和内存的百分比。
MEM USAGE / LIMIT: 容器正在使用的总内存,以及允许使用的内存总量。
NET I/O: 容器通过其网络接口发送和接收的数据量。
BLOCK I/O: 容器从主机上的块设备读取和写入的数据量。
PIDs: 容器创建的进程或线程数。

以JSON格式输出
# docker stats nginx --no-stream --format "{{ json . }}"

输出指定信息
# docker stats --all --format "table {{.Container}}\t{{.CPUPerc}}\t{{.MemUsage}}" fervent_panini 5acfcb1b4fd1 drunk_visvesvaraya big_heisenberg

restart start stop (启动和停止服务)

命令必须在  `docker-compose.yml` 文件所在的目录下执行

# 前台启动, 启动项目中的所有服务。
docker-compose up
 
# 后台启动, 启动所有服务并在后台运行。 
docker-compose up -d
 
# 停止所有服务。
docker-compose stop 
 
restart
docker-compose restart   重启服务容器。
docker-compose restart # 重启工程中所有服务的容器
docker-compose restart nginx # 重启工程中指定服务的容器
 
start
docker-compose start启动服务容器。
docker-compose start # 启动工程中所有服务的容器
docker-compose start nginx # 启动工程中指定服务的容器
 
stop
docker-compose stop停止服务容器。
docker-compose stop # 停止工程中所有服务的容器
docker-compose stop nginx # 停止工程中指定服务的容器

pause unpause (暂停,恢复服务容器)

pause
docker-compose pause暂停服务容器
docker-compose pause # 暂停工程中所有服务的容器
docker-compose pause nginx # 暂停工程中指定服务的容器
 
unpause
docker-compose unpause恢复服务容器。
docker-compose unpause # 恢复工程中所有服务的容器
docker-compose unpause nginx # 恢复工程中指定服务的容器

 

build (构建和重构服务)

# 构建服务的镜像
docker-compose build
 
# 如果服务镜像不存在,则构建镜像并启动服务。
docker-compose up –build
 
# 重构服务。
docker-compose up --force-recreate

 

“您的支持是我持续分享的动力”

微信收款码
微信
支付宝收款码
支付宝

目录关闭