# 容器
# 创建&运行
docker run 【options】 image 【COMMAND】 【ARGS..】
- OPTIONS:选项,需要重点关注-d,-p,-V,-e,-restarti这几个选项
- --name="容器新名字" 为容器指定一个名称;
- -d: 后台运行容器并返回容器ID,也即启动守护式容器(后台运行)
- -i:以交互模式运行容器,通常与 -t 同时使用;
- -t:为容器重新分配一个伪输入终端,通常与 -i 同时使用;也即启动交互式容器(前台有伪终端,等待交互);
- -P: 随机端口映射(大写P)
- -p: 指定端口映射(小写p)
- IMAGE:镜像信息,推荐使用镜像名:TAG的写法如果只写镜像名
- COMMAND:创建容器后要执行的命令
- ARGS:
- -i:以交互模式运行,通常与-t同时使用
- -t:启动容器后,为容器分配一个命令行,通常与-i使用
- 默认运行
docker run mysql
docker run mysql:8.0.24
- 后台运行
docker run -d mysql:8.0.24
- 交互运行 /bin/bash放在镜像后面是命令,这里希望有个交互式的shell,因此用的/bin/bash(可省略成bash)
docker run -d -it mysql:8.0.24 bash
# 容器退出
- exit:run进去容器,exit退出,容器停止
- ctrl+p+q:run进去容器,ctrl+p+q退出,容器不停止
# 容器启动
- 启动已停止运行的容器:docker start 容器ID或者容器名
- 重启容器:ocker restart 容器ID或者容器名
- 停止容器:docker stop 容器ID或者容器名
- 强制停止容器: docker kill 容器ID或容器名
# 删除容器
- docker rm 容器ID 一次性删除多个容器实例: docker rm -f $(docker ps -a -q)
# 进入容器
docker exec 【选项】 容器ID或容器名 命令 【参数】
docker exec -it b8d17a0865ae bash
# 查看容器日志
docker logs 【选项】 容器id或容器名 -f:查看运行中的日志
# 容器拷贝
docker cp 容器ID:容器内路径 目的主机路径
docker cp b8d17a0865ae /usr/local/a.txt /home/c.txt
# 容器命名
docker run --name 需要定义的容器名 镜像名
docker run -d --name customname mysql
# 重启策略
宿主机冲重启后,需要将docker 重新启动并且一个一个,设置重启策略跟随着宿主机一起启动
用法:docker run --restart 重启策略 镜像名
- no:(默认)容器退出时不会自动重启。
- always:容器总是在退出后自动重启。
- on-failure[:max-retries):容器仅在非正常退出时重启,可以指定最大重试次数。
- unless-stopped:容器会在退出后白动重启,除非手动停止了容器.
docker run --restart always -d mysql
# 容器导入和导出(导入和导出容器)
docker export 容器ID > 文件名.tar
- export 导出容器的内容留作为一个tar归档文件[对应import命令]
- import 从tar包中的内容创建一个新的文件系统再导入为镜像[对应export]
docker export b8d17a0865ae > a.tar.gz