1 拉取镜像
docker pull ubuntu
docker pull ubuntu:latest
docker pull nginx:{tag}2 运行容器
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
# 前端打开 bash 进行交互操作
docker run -it ubuntu /bin/bash
# 后台启动 ubuntu 并且睡眠 1000000s
docker run -d ubuntu sleep 1000000
# 后台启动一个 nginx 服务,容器名 mynginx,出错就重启,88 端口映射到容器内 80 端口
docker run --name=mynginx -d --restart=always -p 88:80 nginx
# 将本地 ./Project/test 路径挂载到容器内 /app/workdir 路径下
docker run -d -v ./Project/test:/app/workdir microweboptions:
--name=容器新名字为容器指定一个名字-d后台运行容器并返回容器 ID-i以交互式运行容器-t为容器分配一个伪输入终端,供前端交互-P随机的端口映射-p指定的端口映射--restart=always开机自启-v文件挂载- …
3 启停容器
# 启动已停止运行的容器
docker start 容器ID或者容器名
# 重启容器
docker restart 容器ID或者容器名
# 应用开机自启
docker update 容器id/名字 --restart=always
# 停止容器
docker stop 容器ID或者容器名
# 强制停止容器
docker kill 容器ID或者容器名4 进入容器
# 进入正在运行的容器进行命令行交互
docker exec -it 容器ID bashShell
docker exec -it 容器ID /bin/bash
docker exec -it 容器ID redis-cli
# 重新进入容器
docker attach 容器IDdocker exec 和 docker attach 区别
- attach 直接进入容器启动命令的终端,不会启动新的进程,用 exit 退出,会导致容器的停止。
- exec 是在容器中打开新的终端,并且可以启动新的进程,用 exit 退出,不会导致容器的停止。
5 退出容器
- run 进去容器,exit 退出,容器停止
- run 进去容器,ctrl+p+q 退出,容器不停止
6 罗列容器
# 当前运行的所有容器
docker ps
docker ps [options]options:
-a:列出当前所有正在运行的容器+历史上运行过的-l:显示最近创建的容器。-n:显示最近 n 个创建的容器。-q:静默模式,只显示容器编号。
7 删除容器
# 删除已停止的容器
docker rm 容器ID
# 一次性删除所有容器
docker rm -f $(docker ps -a -q)
docker ps -a -q | xargs docker rm
# 清理掉所有处于终止状态的容器
docker container prune8 查看容器日志
docker logs 容器ID
# 类似 tail -f 方式输出日志
docker logs -f 容器ID9 查看容器运行进程
docker top 容器ID10 查看容器细节
docker inspect 容器ID11 拷贝容器文件到主机
docker cp 容器ID:容器内路径 目的主机路径12 导出容器
# export 导出容器的内容留作为一个 tar 归档文件[对应import命令]
docker export 容器ID > 文件名.tar
# import 从 tar 包中的内容创建一个新的文件系统再导入为镜像[对应export]
cat 文件名.tar | docker import - 镜像用户/镜像名:镜像版本号