Docker的理解和基本命令详解
Docker的理解
Docker是一个开源的容器化平台,提供了一种方便快捷的方式去打包、发布、运行应用程序。它相当于一个轻量级的虚拟机,可以将应用程序和应用程序的所有依赖打包在一起,形成一个镜像,然后在任何地方运行这个镜像。
与传统的虚拟化方式相比,Docker的优势在于:
- 更加轻量级:相较于传统的虚拟机镜像而言,Docker镜像更加轻量,因为Docker镜像共享底层的操作系统内核。
- 更加高效:与虚拟机相比,Docker容器更加高效地利用资源,开启速度更快,占用资源更少。
- 更加灵活:Docker部署更加灵活,可以轻松地在不同的主机之间迁移,也可以在云端实现弹性伸缩。
Docker基本命令
在了解Docker的概念之后,我们来看看常见的Docker命令。
镜像命令
docker pull
:从Docker Hub下载指定的镜像到本地docker images
:列出本地已有的所有镜像docker rmi
:删除本地指定的镜像docker tag
:给本地的镜像打标签docker commit
:将容器的修改保存为新的镜像
例如:
# 从Docker Hub上下载一个Ubuntu镜像
docker pull ubuntu
# 列出本地已有的所有镜像
docker images
# 给本地的ubuntu镜像打上一个my-ubuntu的标签
docker tag ubuntu my-ubuntu
容器命令
docker run
:创建并启动一个容器docker ps
:列出正在运行的容器docker stop
:停止一个容器docker rm
:删除一个容器docker logs
:查看容器的日志docker exec
:在一个运行中的容器内执行指令
例如:
# 以my-ubuntu镜像为模板创建容器并启动
docker run -it my-ubuntu /bin/bash
# 列出正在运行的容器
docker ps
# 停止容器id为1234的容器
docker stop 1234
# 删除容器id为1234的容器
docker rm 1234
# 查看容器id为1234的容器的日志
docker logs 1234
# 在容器id为1234的容器内执行指令
docker exec -it 1234 /bin/bash
示例说明
通过Docker部署一个简单的Web应用
以下假设我们已经编写好了一个简单的Web应用,并将它打包成Docker镜像,并将它推送到了Docker Hub上。
# 从Docker Hub上下载我们的Web应用镜像
docker pull my-web-app
# 启动我们的Web应用
docker run -it -p 8000:80 my-web-app
这里的 -p 8000:80
命令会将容器内的80端口映射到本地的8000端口,这样我们就可以在本地通过 http://localhost:8000
访问我们的Web应用了。
在Docker容器内运行一个Python脚本
假设我们有一个Python脚本 hello.py
,我们想要在Docker容器内运行这个脚本。
# 以Python镜像为模板创建容器并启动
docker run -it python /bin/bash
# 将本地的hello.py文件拷贝到容器内
docker cp ./hello.py [container_id]:/home/
# 在容器内运行hello.py脚本
docker exec -it [container_id] python /home/hello.py
以上命令会先创建一个Python镜像,然后启动一个容器,在容器内将本地的 hello.py
文件拷贝到容器内,最后在容器内运行这个脚本。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Docker的理解和基本命令详解 - Python技术站