【多系统解决方案】Docker常用命令:入门与进阶,如何打包你自己的镜像?

大家好,我是 同学小张,+v: jasper_8017 一起交流,持续学习C++进阶、OpenGL、WebGL知识AI大模型应用实战案例,持续分享,欢迎大家点赞+关注,共同学习和进步。


前段时间我写过一篇多系统解决方案的文章:【多系统解决方案】赶紧丢掉虚拟机吧,Docker + VNC 让你更加轻松拥有多系统,其中用到了Docker操作。

Docker 是一种流行的容器化技术,它允许开发者在隔离的环境中打包、分发和运行应用程序。通俗易懂地说,Docker可以让你轻松实现一台机器多系统。 作用类似我们常用地虚拟机,但其与虚拟机不同,容器共享宿主机的内核,但提供隔离的工作环境。本文带大家了解Docker、入门Docker,以及提供一些进阶使用方法。

0. 前提

0.1 安装 Docker

在开始使用 Docker 之前,你需要在你的计算机上安装它。Docker 支持多种操作系统,包括 Windows、macOS 和 Linux。你可以从 Docker 官网下载适合你操作系统的版本并安装。在Linux系统下,可以直接使用命令行安装。

顺序执行以下命令:

sudo apt update #更新软件源列表

sudo apt install apt-transport-https ca-certificates curl software-properties-common #安装软件包的依赖

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - #在系统中添加Docker的官方密钥

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable" #添加Docker源,选择stable长期稳定版

sudo apt update #再次更新源列表

sudo apt install docker-ce #开始安装Docker

docker -v # 查看是否安装成功

sudo systemctl start docker # 启动docker服务

sudo systemctl enable docker # 设置开机自启动docker

sudo systemctl status docker # 查看Docker是否开启

下图状态说明启动成功:

在这里插入图片描述

0.2 Docker 基本概念

  • 镜像(Image):Docker 镜像是一个只读模板,包含了运行应用程序所需的所有内容。
  • 容器(Container):容器是镜像的运行实例,可以启动、停止、移动和删除。

1. 常用 Docker 命令(基础篇)

1.1 查看 Docker 版本

docker --version

这个命令会显示你安装的 Docker 版本。

1.2 运行 Docker 容器

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
  • IMAGE 是你要运行的镜像名称。
  • COMMAND 是在容器内执行的命令,默认是镜像定义的命令。
  • ARG 是传递给命令的参数。

示例:运行前面文章中的容器

sudo docker run dorowu/ubuntu-desktop-lxde-vnc

1.3 列出当前运行的容器

docker ps

输出类似如下:

REPOSITORY                       TAG       IMAGE ID       CREATED          SIZE
dorowu/ubuntu-desktop-lxde-vnc   latest    1a89db715923   3 years ago      1.32GB
dorowu/ubuntu-desktop-lxde-vnc   bionic    16ac25e8daa0   4 years ago      1.06GB

1.4 停止容器

docker stop CONTAINER_ID
  • CONTAINER_ID 是你想要停止的容器的 ID。

示例:停止 ID 为 1234567890abcdef 的容器。

docker stop 1234567890abcdef

这里的CONTAINER_ID可以换成容器的名称,例如你有个容器的名称是 test:

docker stop test

1.5 启动已停止的容器

docker start CONTAINER_ID

或者

docker start test

1.6 删除容器

docker rm CONTAINER_ID

或者

docker rm test

1.7 拉取镜像

docker pull IMAGE_NAME
  • IMAGE_NAME 是你想要下载的镜像名称。

示例:拉取 前面文章中的镜像

docker pull dorowu/ubuntu-desktop-lxde-vnc:latest

1.8 查看本地镜像

docker images

这个命令会列出你本地的所有 Docker 镜像。

1.9 删除镜像

docker rmi IMAGE_ID
  • IMAGE_ID 是你想要删除的镜像的 ID。

也可以将 IMAGE_ID 换成镜像的名称,例如,你有一个镜像名称叫 testimage:

docker rmi testimage

1.10 通过命令行进入容器后台

docker exec -it CONTAINER_ID COMMAND
  • CONTAINER_ID 是容器的 ID 或者 容器的名称。
  • COMMAND 通常是 /bin/bash/bin/sh,用于进入容器的命令行界面。

示例:进入 ID 为 1234567890abcdef 的容器。

docker exec -it 1234567890abcdef /bin/bash

或者

docker exec -it test /bin/bash

2. 常用Docker命令(进阶篇)

在上文中,我们介绍了 Docker 的基本概念和一些基础命令。现在,我们继续深入了解 Docker 的一些进阶命令,包括 commitinspect 等,这将帮助你更好地管理和使用 Docker 容器。

2.1 commit 命令

docker commit 命令用于从更改过的容器实例中创建一个新的镜像。

docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
  • CONTAINER 是要提交的容器的 ID 或名称。
  • REPOSITORY 是新创建镜像的仓库名称。
  • TAG 是可选的,用于给镜像指定一个标签,默认标签是 latest

示例:

假设你运行了一个容器,对它做了一些更改,现在你想要保存这个状态为一个新的镜像。

docker commit 1234567890abcdef my_new_image

这将创建一个新的镜像 my_new_image,你可以用它来运行新的容器实例。

2.2 inspect 命令

docker inspect 命令用于获取 Docker 对象的底层信息,包括容器、镜像、网络或卷。

docker inspect [OPTIONS] NAME|ID [NAME|ID...]
  • NAME|ID 是要检查的 Docker 对象的名称或 ID。

示例:

查看名为 my_container 的容器的详细信息:

docker inspect my_container

这将返回一个 JSON 格式的详细信息,包括容器的配置、网络设置、挂载卷等。

结果如下图:里面包含了该容器的环境变量设置、进入容器第一个执行的程序或脚本等信息。
在这里插入图片描述

格式化输出

如果你只对某个特定字段感兴趣,可以使用 --format 选项来格式化输出。

docker inspect --format='{{.State.Running}}' my_container

这个命令将只输出容器是否正在运行的状态。

2.3 build 命令:通过 Dockerfile 构建新的镜像

docker build [OPTIONS] PATH | URL | -

使用 Dockerfile 构建一个新的镜像。PATH 是指向包含 Dockerfile 的目录的路径。

示例:

docker build -t my_new_image .

这将在当前目录(. 表示当前目录)查找 Dockerfile 并构建一个新的镜像 my_new_image

2.4 push 命令:推送镜像到仓库

docker push [OPTIONS] NAME[:TAG]

将本地镜像推送到远程仓库,如 Docker Hub。

示例:

docker push my_new_image:latest

2.5 查看容器日志

docker logs [OPTIONS] CONTAINER

查看容器的日志输出。

如果觉得本文对你有帮助,麻烦点个赞和关注呗 ~~~


  • 大家好,我是 同学小张,持续学习C++进阶、OpenGL、WebGL知识AI大模型应用实战案例
  • 欢迎 点赞 + 关注 👏,持续学习持续干货输出
  • +v: jasper_8017 一起交流💬,一起进步💪。
  • 微信公众号搜同学小张 🙏

本站文章一览:

在这里插入图片描述

  • 5
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

同学小张

如果觉得有帮助,欢迎给我鼓励!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值