大家好,我是 同学小张,+v: jasper_8017 一起交流,持续学习C++进阶、OpenGL、WebGL知识和AI大模型应用实战案例,持续分享,欢迎大家点赞+关注,共同学习和进步。
前段时间我写过一篇多系统解决方案的文章:【多系统解决方案】赶紧丢掉虚拟机吧,Docker + VNC 让你更加轻松拥有多系统,其中用到了Docker操作。
Docker 是一种流行的容器化技术,它允许开发者在隔离的环境中打包、分发和运行应用程序。通俗易懂地说,Docker可以让你轻松实现一台机器多系统。 作用类似我们常用地虚拟机,但其与虚拟机不同,容器共享宿主机的内核,但提供隔离的工作环境。本文带大家了解Docker、入门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是否开启 下图状态说明启动成功:

docker --version 这个命令会显示你安装的 Docker 版本。
docker run [OPTIONS] IMAGE [COMMAND] [ARG...] IMAGE 是你要运行的镜像名称。COMMAND 是在容器内执行的命令,默认是镜像定义的命令。ARG 是传递给命令的参数。示例:运行前面文章中的容器
sudo docker run dorowu/ubuntu-desktop-lxde-vnc 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 docker stop CONTAINER_ID CONTAINER_ID 是你想要停止的容器的 ID。示例:停止 ID 为 1234567890abcdef 的容器。
docker stop 1234567890abcdef 这里的CONTAINER_ID可以换成容器的名称,例如你有个容器的名称是 test:
docker stop test docker start CONTAINER_ID 或者
docker start test docker rm CONTAINER_ID 或者
docker rm test docker pull IMAGE_NAME IMAGE_NAME 是你想要下载的镜像名称。示例:拉取 前面文章中的镜像。
docker pull dorowu/ubuntu-desktop-lxde-vnc:latest docker images 这个命令会列出你本地的所有 Docker 镜像。
docker rmi IMAGE_ID IMAGE_ID 是你想要删除的镜像的 ID。也可以将 IMAGE_ID 换成镜像的名称,例如,你有一个镜像名称叫 testimage:
docker rmi testimage 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 在上文中,我们介绍了 Docker 的基本概念和一些基础命令。现在,我们继续深入了解 Docker 的一些进阶命令,包括 commit 和 inspect 等,这将帮助你更好地管理和使用 Docker 容器。
docker commit 命令用于从更改过的容器实例中创建一个新的镜像。
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]] CONTAINER 是要提交的容器的 ID 或名称。REPOSITORY 是新创建镜像的仓库名称。TAG 是可选的,用于给镜像指定一个标签,默认标签是 latest。假设你运行了一个容器,对它做了一些更改,现在你想要保存这个状态为一个新的镜像。
docker commit 1234567890abcdef my_new_image 这将创建一个新的镜像 my_new_image,你可以用它来运行新的容器实例。
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 这个命令将只输出容器是否正在运行的状态。
docker build [OPTIONS] PATH | URL | - 使用 Dockerfile 构建一个新的镜像。PATH 是指向包含 Dockerfile 的目录的路径。
示例:
docker build -t my_new_image . 这将在当前目录(. 表示当前目录)查找 Dockerfile 并构建一个新的镜像 my_new_image。
docker push [OPTIONS] NAME[:TAG] 将本地镜像推送到远程仓库,如 Docker Hub。
示例:
docker push my_new_image:latest docker logs [OPTIONS] CONTAINER 查看容器的日志输出。
如果觉得本文对你有帮助,麻烦点个赞和关注呗 ~~~
- 大家好,我是 同学小张,持续学习C++进阶、OpenGL、WebGL知识和AI大模型应用实战案例
- 欢迎 点赞 + 关注 👏,持续学习,持续干货输出。
- +v: jasper_8017 一起交流💬,一起进步💪。
- 微信公众号搜【同学小张】 🙏
本站文章一览:
