1 容器生命周期管理
1.1 docker run1.2 docker start/stop/restart1.3 docker kill1.4 docker pause/unpause1.5 docker exec1.6 docker rm 2 容器操作
2.1 docker ps2.2 docker inspect2.3 docker logs-查看docker容器日志2.4 docker export 2.5 docker port 3 本地镜像管理
3.1 docker images3.2 rmi3.3 docker build3.4 docker save3.5 docker load
1 容器生命周期管理 1.1 docker run# docker run语法 docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
| OPTIONS | Description |
|---|---|
| -d | 后台运行容器,并返回容器ID |
| –name | 为容器指定一个名称 —name 容器名称 或 —name=容器名称 (两个 - ) |
| -p | 指定端口映射,格式为:主机(宿主)端口:容器端口 或 对外暴露端口:容器(项目)端口 |
| -m | 设置容器使用内存最大值 |
| -i | 以交互模式运行容器,通常与 -t 同时使用 |
| -t | 为容器重新分配一个伪输入终端,通常与 -i 同时使用 |
# 语法: # 启动容器 docker start [OPTIONS] ConTAINER [CONTAINER...] # 停止容器 docker stop [OPTIONS] ConTAINER [CONTAINER...] # 重启容器 docker restart [OPTIONS] ConTAINER [CONTAINER...]1.3 docker kill
# 语法 docker kill [OPTIONS] ConTAINER [CONTAINER...] # -s :向容器发送一个信号
1.4 docker pause/unpause杀掉运行中的容器tomcat(指定容器名称)
docker kill -s KILL tomcat杀掉运行中的容器(指定容器id)
docker kill -s kill 3a5b
# 语法 # 1.暂停容器中所有的进程 docker pause ConTAINER [CONTAINER...] # 1.恢复容器中所有的进程 docker unpause ConTAINER [CONTAINER...]
1.5 docker exec暂停数据库容器mysql;提供服务
docker pause mysql
恢复数据库容器 mysql提供服务
docker unpause mysql
# 语法 docker exec [OPTIONS] ConTAINER COMMAND [ARG...] -d :分离模式: 在后台运行 -i :即使没有附加也保持STDIN 打开 -t :分配一个伪终端
1.6 docker rm进入docker里面的mysql(伪终端,exit退出,不影响正常运行)
docker exec -it mysql bash
mysql -uroot -p
输入mysql的密码即可
# 语法 docker rm [OPTIONS] ConTAINER [CONTAINER...] -f :通过 SIGKILL 信号强制删除一个运行中的容器。 -l :移除容器间的网络连接,而非容器本身。 -v :删除与容器关联的卷。
2 容器操作 2.1 docker ps删除多个容器
docker rm CONTAINER_id1 CONTAINER_id2
删除全部容器
docker rm -f ($docker ps -aq)
| OPTIONS | Description |
|---|---|
| -a | 参数可以查看所有状态的容器 |
| -s | 显示总的文件大小 |
| -f | 根据条件过滤显示的内容 |
| –format | 指定返回值的模板文件 |
| -l | 显示最近创建的容器 |
| -n | 列出最近创建的n个容器 |
| –no-trunc | 不截断输出 |
| –q | 静默模式,只显示容器编号 |
2.2 docker inspectdocker ps # 默认是查看,正在运行的docker容器
# 语法 docker inspect [OPTIONS] CONTAINER|IMAGE|TASK -f :指定返回值的模板文件 -s :显示总的文件大小 --type :为指定类型返回JSON # 获取容器mysql的信息 docker inspect mysql2.3 docker logs-查看docker容器日志
$ docker logs [OPTIONS] ConTAINER
Options:
--details 显示更多的信息
-f, --follow 跟踪实时日志
--since string 显示自某个timestamp之后的日志,或相对时间,如42m(即42分钟)
--tail string 从日志末尾显示多少行日志, 默认是all
-t, --timestamps 显示时间戳
--until string 显示自某个timestamp之前的日志,或相对时间,如42m(即42分钟)
实例:
# CONTAINER_ID:可以是容器完整id或容器名称 # 查看指定时间后的日志,只显示最后100行 docker logs -f -t --since="2022-02-08" --tail=100 CONTAINER_ID # 查看最近30分钟的日志: docker logs --since 30m CONTAINER_ID # 查看某时间之后的日志: docker logs -t --since="2022-02-08T13:23:37" CONTAINER_ID # 查看某时间段日志: docker logs -t --since="2022-02-08T13:23:37" --until "2022-02-09T12:23:37" CONTAINER_ID2.4 docker export
# 语法 docker export [OPTIONS] ConTAINER 实例:将id为746300e14aa4的容器按日期保存为tar文件 docker export -o mysql-`date +%Y%m%d`.tar 746300e14aa4 ls mysql-`date +%Y%m%d`.tar >> mysql-20211228.tar2.5 docker port
语法: docker port ConTAINER [PRIVATE_PORT[/PROTO]] 实例:查看容器mysql的端口映射情况。 docker port mysql >>> 3306/tcp -> 0.0.0.0:30013 本地镜像管理 3.1 docker images
语法: docker images [OPTIONS] [REPOSITORY[:TAG]] -a :列出本地所有的镜像(含中间映像层,默认情况下,过滤掉中间映像层); --digests :显示镜像的摘要信息; -f :显示满足条件的镜像; --format :指定返回值的模板文件; --no-trunc :显示完整的镜像信息; -q :只显示镜像ID # 默认显示所有容器,(一般情况下)相当于docker images -a docker images3.2 rmi
# 语法 docker rmi [OPTIONS] [IMAGE...] -f :强制删除; --no-prune :不移除该镜像的过程镜像,默认移除; docker rmi -f ($docker images -aq)删除全部镜像 docker rmi -f mysql 删除mysql镜像 docker image rm mysql 一次只能删除一个镜像3.3 docker build
| OPTIONS | Description |
|---|---|
| -f | Dockerfile的名称(默认为“ PATH / Dockerfile”) |
| -t,–tag | 指定构建的镜像名和 tag |
# 语法 docker save [OPTIONS] IMAGE [IMAGE...] 实例:将镜像mysql生成mysql.tar文档 docker save -o mysql.tar mysql ll mysql.tar3.5 docker load
# 语法 docker load [OPTIONS] --input , -i : 指定导入的文件,代替 STDIN。 --quiet , -q : 精简输出信息。 # 实例 # 导入一个打包好的的msyql镜像 docker load < mysql.tar docker images
文章参考文档



