一、基本概念
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux 或 Windows 操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口 [1]。
虚拟机技术(左)和容器技术(右)的关系如下图所示 [2]:
需要了解三个重要的概念:容器、镜像、仓库 [3]。
“从仓库(一般为DockerHub)下载(pull)一个镜像,Docker执行run方法得到一个容器,用户在容器里执行各种操作。Docker 执行 commit 方法将一个容器转化为镜像。Docker 利用 login、push 等命令将本地镜像推送(push)到仓库。其他机器或服务器上就可以使用该镜像去生成容器,进而运行相应的应用程序了 [4]。”
二、Docker的安装
Docker官网:https://www.docker.com/。通过官网提示在 Linux、Windows 或苹果系统中安装 Docker。Docker 可以有桌面窗口(Desktop版本),也可以无桌面窗口(引擎版本)。在 Linux 系统下使用无桌面窗口的版本,然后通过命令行操作,这种方式可以对 Docker 有比较清晰的了解。
此外,在 Linux 系统中直接输入以下命令可以快捷完成 Docker 的安装(无桌面窗口)。
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
Docker 引擎的官方文档:https://docs.docker.com/engine/。
Docker Hub 官网:https://hub.docker.com/。
三、Docker的常用命令
- 查看本地所有镜像:docker images
- 查看所有容器:docker ps -a
- 查看容器的占用空间大小:docker ps -s
- 获取 Ubuntu 镜像:docker pull ubuntu
- 使用 ubuntu 镜像创建一个容器:docker run -it ubuntu /bin/bash
- 创建一个容器或者用这个命令,额外指定容器名字和端口:docker run -it --name ubuntu -p 8080:20 ubuntu /bin/bash
- 启动某个容器:docker start 容器ID
- 进入某个容器(推荐,通过这种方式进入容器,exit 退出不会导致容器的停止):docker exec -it 容器ID /bin/bash
- 进入某个容器(exit退出会导致容器的停止):docker attach 容器ID
- 退出某个容器:exit
- 重启某个容器:docker restart 容器ID
- 停止某个容器:docker stop 容器ID
- 删除某个容器:docker rm -f 容器ID
- 删除某个镜像:docker rmi 镜像名
- 复制容器中的文件:docker cp 容器ID:/a.py /a.py 以及 sudo docker cp /a.py 容器ID:/a.py
四、容器的导出导入
export 和 import 的方式:
- 将容器导出为压缩包:docker export 容器ID > new_ubuntu.tar
- 将文件导入为镜像:docker import new_ubunbu.tar new_ubuntu_镜像名
- 查看镜像:docker images
save 和 load 的方式(推荐):
- 将容器保存为镜像:docker commit 容器ID 镜像名
- 将镜像保存为文件:docker save -o 文件名.tar 镜像名
- 将文件加载为镜像:docker load -i 文件名.tar
- 查看镜像:docker images
说明:使用 docker export 和 docker import 适用于容器文件系统的迁移,但不适合完整的镜像迁移,尤其是当你需要迁移镜像的历史层时。如果你想要导出并保存一个完整的镜像(包括所有历史层和元数据),应使用 docker save 和 docker load 命令。参考:https://zhuanlan.zhihu.com/p/152219012。
五、其他设置
1. 设置Docker重启后自动运行:docker update --restart=always 容器ID
2. 调整容器的内存限制(调整为1g):docker update -m 1g 容器ID
参考资料:
[1] Docker_百度百科
[3] Docker 入门教程
[5] https://www.runoob.com/docker/
【说明:本站主要是个人的一些笔记和代码分享,内容可能会不定期修改。为了使全网显示的始终是最新版本,这里的文章未经同意请勿转载。引用请注明出处:https://www.guanjihuan.com】