Docker
- 1.Docker为什么比虚拟机要快?
- 2.Docker命令:
- 2.1 帮助启动类命令
- 3.1 镜像命令
- 4.1 容器命令
- 4.1.1 新建启动容器(run )
- 4.1.2:交互式启动ubuntu( -it)
- 4.1.3:查看正在运行的容器(ps)
- 4.1.4:退出容器(exit&ctrl+p+q)
- 4.1.5:启动已经挂掉的容器(start )
- 4.1.6:停止容器&重启容器(stop&restart )
- 4.1.7:强制停止容器(kill )
- 4.1.7:删除已经停止的容器(rm -f)
- 4.1.8:启动守护容器(-d)
- 4.1.8.5查看容器内部细节(inspect )
- 4.1.8.6 重新进入交互页面(exec)
- 4.1.8.7 将数据拷贝到本机(cp )
- 4.1.8.8拷贝容器到本地(export )
- 4.1.8.9导入容器到本地(import )
- 4.1.8.10 查看容器映射关系(port )
1.Docker为什么比虚拟机要快?
2.Docker命令:
2.1 帮助启动类命令
2.1.1启动docker(systemctl start docker)
systemctl start docker
2.1.2 停止docker( systemctl stop docker)
systemctl stop docker
2.2.3 查看docker的状态(systemctl status docker)
systemctl status docker
2.2.4 开机自启动(systemctl enable docker)
systemctl enable docker
2.2.5 查看docker概要信息(info)
docker info
2.2.6查看docker帮助文档(help)
docker -help
2.2.7查看某一个命令的详细参数
docker xxx--help
例:
docker cp --help
3.1 镜像命令
3.1.1 列出本机的所有镜像(images)
docker images
- 可选参数
- -a
- -q
docker images -a :显示全部
docker images -q : 只显示id
- 参数说明:
- REPOSITORY 表示镜像的仓库源
- TAG 表示镜像的标签
- IMAGE ID 镜像的ID
- CREATED 镜像的创建时间
- SIZE 镜像的大小
3.1.2 删除镜像文件(rmi -f)
-可选参数:-f 强制删除
docker rmi redis 删除本地的redis镜像文件
- rmi可以通过id去删除 :docker rmi fed26a1d5
- 后面几个id,就会删除几个 docker rmi a b c
- 全部删除命令:docker rmi -f $(docker images -qa )
3.1.3 在仓库中查找(search )
docker search xxx
例:
docker search hello-world
- 可选参数 --limit 显示多少个
docker search --limit 5 redis
3.1.4 在仓库拉取(pull )
docker pull redis
- 可选参数:【TAG】 不选是默认的latest
例如:docker pull redis:6.2
3.1.5查看镜像/容器/数据卷占用的空间(docker system df)
docker system df
4.1 容器命令
用ubuntu 作为演示
下载一个ubuntu
docker pull ubuntu
是在docker中用ubuntu演示
4.1.1 新建启动容器(run )
docker run [OPTIONS] IMAGE [COMMAND] [ARG…]
- OPTIONS参数
- COMMAND 镜像名称
- ARG…其他参数选项
OPTIONS的参数说明:
-- name="容器的新名字" 为容器指定一个新名称
-d:后台运行容器,并返回容器ID
-i:以交互模式运行容器,通常与-t同时使用
也及启动交互式容器,(前台有伪终端,等待交互)
-P:随机端口映射(大写)
-p:指定端口映射(小写)
4.1.2:交互式启动ubuntu( -it)
docker run -it ubuntu /bin/bash
- 使用镜像文件Centos:latest以交互式的启动一个容器,在容器外面执行/bin/bash
- 参数说明:
- -i 交互式操作
- -t 终端
- ubuntu:镜像
- /bin/bash:放在镜像名后就是命令,这里希望有一个交互式的shell,因此用的是/bin/bash
- 输入exit退出
4.1.3:查看正在运行的容器(ps)
- docker run -it --name=myubuntu ubuntu /bin/bash
再次启动ubuntu ,设置名字 - 新开一个连接 输入:docker ps
- 可选参数
- -a :查看历史运行的容器,和正在运行的容器
- -l:显示最近创建的容器
- -n显示最近n个创建的容器
- -q静默模式,只显示容器编号
状态有7种:
created(已创建)
restarting(重启中)
running 或 Up(运行中)
removing(迁移中)
paused(暂停)
exited(停止)
dead(死亡)
4.1.4:退出容器(exit&ctrl+p+q)
- exit
- 按住:ctrl+p+q退出,但是容器不停止
- xxx=容器id
- docker exec -it xxx /bin/bash 命令即可重新进入到交互页面
4.1.5:启动已经挂掉的容器(start )
docker start xxxx
例:
docker start 7f1b0281d6ee
4.1.6:停止容器&重启容器(stop&restart )
# 重启
docker restart <容器 ID>
#停止
docker stop 容器id或者容器名
4.1.7:强制停止容器(kill )
docker kill 容器id或者容器名
4.1.7:删除已经停止的容器(rm -f)
docker rm 容器id
-f 强制
4.1.8:启动守护容器(-d)
- 大部分场景下希望docker服务是在后台运行的,可以通过-d指定容器的运行模式
- docker run -d 容器名字
4.1.8.1:前台交互(-it)
- docker run -it redis:6.2
- 但是我们更多的是希望是在后台运行的,如果一不小心按了退出,这个redis就挂了
4.1.8.2:后台交互(-d )
docker run -d redis:6.2
4.1.8.3 查看容器日志(logs )
docker logs 容器id
例:
docker logs 9a73eb80e9fe
4.1.8.4查看容器内运行的进程(top )
docker top 容器id
例:
docker top 9a73eb80e9fe
4.1.8.5查看容器内部细节(inspect )
使用 docker inspect 来查看 Docker 的底层信息。它会返回一个 JSON 文件记录着 Docker 容器的配置和状态信息。
docker inspect 9a73eb80e9fe
4.1.8.6 重新进入交互页面(exec)
按住:ctrl+p+q退出,但是容器不停止
xxx=容器id
docker exec -it xxx /bin/bash 命令即可重新进入到交互页面
docker attach 容器id
- 两种办法都可以重新进入区别:
- attach直接进入容器启动的终端,不会启动新的线程,用exit会直接退出导致容器停止
- exec是在容器中打开新的终端,并且可以启动新的线程,用exit退出,不会导致容器停止
docker exec -it 9a73eb80e9fe /bin/bash :进入到redis的交互页面
4.1.8.7 将数据拷贝到本机(cp )
- 如果我在docker里面的ubuntu里面创建了一个文件,然后别人不小心删除了ubuntu,数据就没了,所以要将重要的数据拷贝
docker cp 容器路径:需要拷贝的文件位置 要拷贝到哪里
docker cp 8a6c57788d25:/tmp/a.txt /usr/local
4.1.8.8拷贝容器到本地(export )
docker export 容器id >文件.tar
docker export 8a6c57788d25 > ub.tar
- 将ubuntu 删掉
- rm -f 8a6c57788d25
4.1.8.9导入容器到本地(import )
cat 文件名.tar |docker import - 镜像用户/镜像名:镜像版本号
例:
cat ub.tar |docker import - bj/lxt:0.0
docker images 查看是否导入成功
- 启动刚刚导入的文件,发现数据存在
4.1.8.10 查看容器映射关系(port )
docker port 容器id
- 查询出来容器的端口映射关系