Docker 入门使用说明
Docker 入门使用说明
Docker 安装
Docker 官网:Docker
Docker 安装说明:Docker 安装说明
这里由于 Docker 在实时更新,所以每次安装 Docker 用来导入 key 的链接可能会有变化,这里就参考官方的安装方法即可
Docker 常用命令说明
基础操作
查询镜像:
docker search 要查询的镜像
这里会显示所有当前镜像的版本和网友封装的版本
拉取镜像:
docker pull 镜像名称:版本号
创建镜像:
docker create 镜像名称:版本号
当我们没有当前镜像,docker 就会自动把镜像下载到本地
查看本地容器镜像:
docker image ls
这里会显示我们本地所有的镜像
运行镜像:
docker run --name 名称 系统:版本号
这样就运行了一个镜像,但是我们发现我们并没有进入到协同命令行中
docker run --name 名称 -it 系统:版本号
这样我们就在运行 docker 镜像的同时,进入到了命令行下
查看当前所有容器的列表
docker ps -a
这将显示所有容器的列表,包括已停止的容器。从列表中,我们可以找到我们想要运行的容器的 ID 和名称
启动已有容器
docker start <容器ID/名称>
请确保将 <容器ID/名称> 替换为你要启动的容器的实际 ID 或名称
连接到正在运行的容器
docker attach <容器ID/名称>
这将连接到正在运行的容器,并将终端输入和输出重定向到容器中,这意味着你可以在容器中执行命令和操作
关闭运行的镜像:
docker stop <容器ID/名称>
删除指定容器
docker rm <容器ID/名称>
Docker 全部关闭、全部重启、全部删除操作
启动所有容器
docker start $(docker ps -a | awk '{ print $1}' | tail -n +2)
重启所有容器
docker restart $(docker ps -a -q)
关闭所有容器
docker stop $(docker ps -a | awk '{ print $1}' | tail -n +2)
删除所有容器
docker rm $(docker ps -a | awk '{ print $1}' | tail -n +2)
删除所有镜像
docker rmi $(docker images | awk '{print $3}' |tail -n +2)
Docker 名称修改
使用 --name 选项重命名容器
docker run --name 我的容器 容器名称(自定义)
如果容器已经存在,可以使用 docker rename 命令来重命名容器:
docker rename old-container-name new-container-name
这将把名为 old-container-name 的容器重命名为 new-container-name
使用 docker-compose.yml 文件
如果您在运行多个 Docker 容器,例如作为一组服务,可以使用 docker-compose.yml 文件来命名它们。在这种情况下,您可以在 docker-compose.yml 文件中为每个容器指定一个名称,例如:
services:
web:
image: nginx
container_name: my_nginx
db:
image: mysql
container_name: my_mysql
这将创建两个容器:一个名为 my_nginx 的 NGINX 容器,另一个名为 my_mysql 的 MySQL 容器
使用 docker update 命令
如果您使用 docker-compose 来管理 Docker 服务,您可以使用以下命令来重命名服务(容器):
docker-compose rename old-service-name new-service-name
这将把名为 old-service-name 的服务/容器重命名为 new-service-name
Docker 文件处理
本地文件上传到指定容器中:
docker cp 本地文件路径 容器名称/id:容器文件路径
容器挂载本地文件夹:
docker run -it -v 本地目录:容器内目录 镜像:版本
使用上述命令,必须是新建容器
Docker 查看容器大小(内存与运行内存)
docker 查看容器占用磁盘大小
docker system df # 查看总体占用
docker system df -v # 查看每个 image、container 详细大小
使用 docker inspect 命令,该命令可以返回有关 Docker 对象(容器、镜像等)的详细信息,包括容器大小
docker inspect --format='{{.Size}}' <container_name_or_id> # 这里就是通过查询容器配置信息的方式实现对容器大小的查询
查看容器磁盘空间占用:
docker ps -s
设置容器运行内存大小
这里通过 docker run 命令,使用 --memory 参数 和 --memory-swap 来设置容器的内存大小和交换内从大小:
docker run -d -name mu_container_name --memroy 1g --memory-swap 1g <image_name>
这里 --memory 设置的是容器的物理内存,--memory-swap 是虚拟内存既交换内存
容器内部查询
这里可以在容器内部,使用 Linux 命令,就像在 Linux 下一样即可
容器导入导出
#导出一个已经创建的容器导到一个文件
docker export -o 文件名.tar 容器id
#将文件导入为镜像
docker import 文件名.tar 镜像名:镜像标签
非管理员使用 Docker
sudo usermod -aG docker ppqppl(当前用户名)
newgrp docker #可以立即生效
groups #查看当前用户 username 所加入的组.
Docker 容器启动多个终端
docker run -d -i -t 容器名称/ID /bin/bash
# 或
docker exec -it 容器名/ID /bin/bash
Docker 打包上传本地镜像
打包镜像(需要 Dockerfile)
构建好自己的镜像后,使用以下命令进行打包:
docker build -t <image_name>:<tag>
命令来创建一个本地标记为 <image_name> 的镜像。其中 : 表示版本号或者标签名称,. 表示当前目录。例如我的:
docker build -t risc64-unknown-elf:v1.0 .
这里如果末尾没有空格和点会报错:
ERROR: "docker buildx build" requires exactly 1 argument.
打包镜像(不需要 Dockerfile)
使用 docker commit 命令创建:
docker commit riscv64-unknown-elf riscv64-unknown-elf:v1.0
上传镜像
这里选择上传的云端平台是 Docker Hub:
如果没有账号需要事先进行注册,这里选择使用 github 账号登录即可
注册后我们需要创建一个仓库用来上传我们的镜像:
这里创建方式与 github 方式类似,这里我们进入库后,网站上详细介绍了如何进行上传和上传的链接等:
首先需要链接本地镜像与云端仓库:
# docker tag 本地镜像名:版本号 dockerhub用户名/仓库名:版本号
# 没有版本号默认latest
docker tag riscv64-unknown-elf:v1.0 ppqppl/riscv64-unknown-elf:v1.0
最后我们就可以 push 我们本地的镜像了,这里注意,一定要保持本地网络畅通,不然上传到一半失败就要重新开始:
docker login
# 然后依次输入docker用户名,密码.
# push本地镜像到仓库
docker push ppqppl/riscv64-unknown-elf:v1.0