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:

Docker Hub

如果没有账号需要事先进行注册,这里选择使用 github 账号登录即可

注册后我们需要创建一个仓库用来上传我们的镜像:

image

这里创建方式与 github 方式类似,这里我们进入库后,网站上详细介绍了如何进行上传和上传的链接等:

image

首先需要链接本地镜像与云端仓库:

# 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
posted @ 2024-03-24 11:31  ppqppl  阅读(26)  评论(0编辑  收藏  举报