软件使用, 生活

开源的应用容器引擎Docker

一、基本概念

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的安装(无桌面窗口)[5]。

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

Docker引擎的官方文档的链接:https://docs.docker.com/engine/

三、Docker的使用

1. 获取Ubuntu镜像

docker pull ubuntu

Docker Hub官网:https://hub.docker.com/

2. 查看本地所有镜像

docker images

3. 使用ubuntu镜像创建一个容器

docker run -it ubuntu /bin/bash

或者用这个命令,额外指定容器名字和端口:

docker run -it --name ubuntu -p 8080:20 ubuntu /bin/bash

4. 退出某个容器

exit

5. 查看所有容器

docker ps -a

6. 启动或重启某个容器

docker start 容器ID
docker restart 容器ID

7. 进入某个容器

docker attach 容器ID

8. 进入某个容器(通过这种方式进入容器,exit退出不会导致容器的停止)

docker exec -it 容器ID /bin/bash

9. 删除某个容器

docker rm -f 容器ID

10. 删除某个镜像

docker rmi 镜像名

11. 复制容器中的文件

sudo docker cp 容器ID:/a.py /a.py
sudo docker cp /a.py 容器ID:/a.py

四、容器的导出导入

1. 导出(导出为压缩包)

docker export 容器ID > new_ubuntu.tar

2. 导入(导入为镜像)

docker import new_ubunbu.tar new_ubuntu_镜像名

3. 查看导入情况(查看镜像)

docker images

五、设置Docker重启后自动运行

docker update --restart=always 容器ID

六、更新配置

调整容器的内存限制(调整为1g)

docker update -m 1g 容器ID

参考资料:

[1] Docker_百度百科

[2] 什么是Docker?看这一篇干货文章就够了!

[3] Docker 入门教程

[4] 只要一小时,零基础入门Docker

[5] https://www.runoob.com/docker/

336 次浏览

【说明:本站主要是个人的一些笔记和代码分享,内容可能会不定期修改。为了使全网显示的始终是最新版本,这里的文章未经同意请勿转载。引用请注明出处:https://www.guanjihuan.com

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

Captcha Code