初学者应该知道的Docker命令
你是否第一次开始使用docker,并在大量的命令中感到困惑。不要担心,本博客将重点介绍作为初学者应该知道的Docker命令。
在深入了解Docker的功能和特点之前,我们需要了解为什么我们需要Docker。
如果你在这个行业已经有一段时间了,那么你会遇到这个关于引入Docker的备忘录。好吧,这则备忘录表面上很搞笑,但不知为何却变成了一个事实。
Docker之前的生活
在引入Docker之前,向目标用户运送应用程序不仅是一项复杂的 任务,而且还很乏味。像zip文件、轮子文件、甚至JAR文件这样的工件被运送给用户,然后部署到他们的机器上。现在,你会想知道这种运送和部署应用程序的方法是否成功。
答案就在于应用程序部署的后遗症。一旦一个应用程序或软件被部署到用户的机器上,它可能无法按预期工作。导致应用程序在所有机器上表现不一样的两个主要原因是:
- 不同机器之间的应用程序版本不一致
- 不同机器的环境变量不一致
Docker帮助解决了这两个问题,它将软件的所有部分的版本都定义在一个叫做Dockerfile的文件中。
Dockerfile
Dockerfile是一个基于文本的文件,包含所有关于软件依赖关系的信息。Dockerfile在用户的系统上执行,在Dockerfile中列出的命令的帮助下,软件被安装在用户的系统上。
通常,Dockerfile是唯一运送给用户的东西。
# file.py
print('Hello All')
下面是一个Dockerfile样本,用于理解这个概念:
Dockerfile
FROM ubuntu:latest
COPY . /loc
RUN make /loc
CMD python /loc/file.py
让我们看看上述Dockerfile是如何工作的:
1.FROM ubuntu:latest :这创建了ubuntu操作系统的一个层,Dockerfile中的其他命令可以在这个层上执行。一旦这一行被执行,ubuntu操作系统就会从Docker Hub下载。
2.COPY . /loc: 这将把当前目录下的所有文件复制到/loc 目录下。
3.RUN make /loc: 一旦我们安装了ubuntu操作系统,我们就可以使用make 命令来编译/loc 目录中的文件。
4.CMD python /loc/file.py: 使用CMD 命令,在用户的机器上执行python文件file.py 。
请注意,这是一个基本的Docker文件,与真正的软件发布所用的Docker文件相差甚远。
如何运行Docker文件?
一旦Docker文件被运送给用户,就应该使用一些特殊的命令来执行Docker文件。让我们看看执行Docker文件的过程。
构建Docker文件
docker build -t mudit111/docker .
基本上,build 命令是用来从Docker文件中创建一个Docker镜像 。该命令的语法使用-t 来命名你新创建的Docker镜像。命令末尾的 **.**用在命令的末尾,告诉编译器该Docker文件只存在于当前目录中。
现在,如果你试图在当前目录中找到Docker镜像,你将找不到任何东西,因为Docker镜像不是以单个文件形式存储的。Docker镜像的存储是由系统负责的。但是,如果你需要在某个时间点上查看系统中存在的镜像,该怎么办?我们将在下一节看到这个问题。
列出Docker镜像
docker image
使用上述命令,你可以很容易地列出当前系统中的所有Docker镜像。Docker镜像的列表将包括以下细节:
- REPOSITORY
- 标签
- 图像ID
- 已创建
- 规模
这些Docker镜像也可以被推送到Docker Hub,以便其他用户轻松下载你的项目。Docker Hub类似于GitHub。就像GitHub存储你的代码一样,Docker Hub存储Docker镜像。
运行一个Docker镜像
docker run mudit111/docker
运行mudit111/docker Docker镜像,你会得到如下输出。
一旦运行Docker镜像,就会创建一个Docker容器。Docker容器一直处于运行状态,直到Docker镜像完成。一旦Docker镜像完成,Docker容器会自动停止。
列出Docker容器
docker ps
这个命令有助于查看正在运行的容器。但是,这将只列出那些仍然处于运行状态的容器。那些已经创建但现在已经停止的容器将不会用这个命令来显示。要想列出所有的容器,包括那些目前不在运行状态的容器,你需要在现有的命令后面使用-all 。
由于我们的容器目前没有运行,docker ps 命令将不会显示任何东西。但是,在命令的末尾添加-all ,就会显示所有停止的和运行的容器。
将Docker镜像推送到Docker Hub
docker push mudit111/docker
一旦创建了Docker镜像,你就可以使用docker push 命令轻松地将镜像发布到Docker Hub。推送Docker镜像到Docker Hub可以让全球的用户在他们的机器上访问你的Docker 镜像。
在你推送你的Docker镜像到Docker Hub之前,你应该有一个有效的Docker Hub账户。
同样,你也可以从Docker Hub中提取任何公共Docker镜像。
从Docker Hub拉取Docker镜像
docker pull mudit111/docker
通过使用docker pull 命令,你可以将任何Docker镜像下载到你的系统中。一旦Docker镜像被下载到你的系统中,你可以使用docker run 来运行该镜像。
一旦你完成了这些命令,你可以尝试制作一个Docker文件样本并将其上传到Docker Hub。然后,你可以让任何人从Docker Hub下载你的Docker镜像并尝试运行该镜像。
如果你想尝试交互式地使用Docker命令,你可以在Docker Playground注册。