大家好,我是 同学小张,+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 的一些进阶命令,包括 commit
和 inspect
等,这将帮助你更好地管理和使用 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 一起交流💬,一起进步💪。
- 微信公众号搜【同学小张】 🙏
本站文章一览: