Docker介绍与安装使用(一)

简介:

什么是Docker?

docker是一个基于LXC容器技术的管理工具,提供一系列更强的功能,如可移植性(定义了标准,可以在任意主机运行)、自动化构建(dockerfile)、版本控制、镜像管理等。

docker提供应用程序的自动化部署解决方案,能够迅速创建一个容器,并在容器上部署和运行应用程序,通过配置文件(Dockerfile)可以轻松实现应用程序的自动化安装、部署和升级

Docker优点?

1.轻量级资源,容器是在进程级别隔离,并使用宿主机的内核,而不需要虚拟化整个操作系统。不需要虚拟化和系统调用复杂的操作。因此节省了很大的额外开销。不需要额外的hypervisor(虚拟化技术)支持,不需要虚拟硬件,不需要额外完整的系统。

2.可移植性,所需要的应用都在容器中,可以在任意一台docker主机上运行

3.可预测性,宿主机和容器相互不关心对方都运行什么。只考虑所需的接口标准化。

相关组件及功能?

1.lxc,Linux Container的简写,lxc是一种内核虚拟化技术,与宿主机共享内核,用namespace和cgroup实现资源隔离。lxc是linux内核一个特性,它允许进程或进程组运行在一块独立的空间,并能对其控制。并实现容器与宿主机资源共享。

2.cgroup,lxc是cgroup的管理工具。限制进程或进程组使用的系统资源管理。提供类似文件的接口,非常方便配置。

3.namespace,cgroup是namespace的用户空间的管理接口。并对进程或进程组之间隔离,如果net、mnt、pid、user等。

4.aufs(AnotherUnionFS),支持将不同目录挂载到同一个虚拟文件系统。docker容器分为只读的镜像层与上面可写层,AUFS实现在可写层上进行增量的修改(增量文件系统)。

在docker中,只读层及在顶部的读写层的组合被称为Union File System,UFS(联合文件系统),目前支持的联合文件系统种类包括 AUFS、btrfs、vfs和DeviceMapper。

5.chroot,使容器运行在指定的目录内。

组件之间关系?

cgroup是在底层实现资源管理,lxc在cgroup上封装了一层,docker又在lxc封装了一层。

wKioL1Z_-iXjQvrfAAD8YQ9PScM534.png

工作方式?

当我们启动一个docker容器时,docker会加载只读镜像,并在其上添加一个读写层(将镜像目录复制一份到/var/lib/docker/aufs/mnt以ID为目录下,我们可以使用chroot进入此目录,与容器里面的目录一样)。如果运行中的容器修改现有的一个已经存在的文件,那该文件将会从读写层下面的只读层复制到读写层,该文件的只读版本仍然存在,只是已经被读写层中的该文件的副本所隐藏,当删除docker容器,并通过该镜像重新启动时,之前的更改将会丢失。


博客地址:http://lizhenliang.blog.51cto.com


Docker安装与使用:

操作系统:Ubuntu14.04_x64

1、添加秘钥

$ sudo apt-key adv --keyserver hkp://pgp.mit.edu:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D

2、添加docker源

$ sudo vi /etc/apt/sources.list.d/docker.list

# Ubuntu Precise 

deb https://apt.dockerproject.org/repo ubuntu-precise main 

# Ubuntu Trusty 

deb https://apt.dockerproject.org/repo ubuntu-trusty main 

# Ubuntu Vivid 

deb https://apt.dockerproject.org/repo ubuntu-vivid main 

# Ubuntu Wily 

deb https://apt.dockerproject.org/repo ubuntu-wily main

注意:通过命令lsb_release -c查看上面对应的版本,不要都添加上

3、更新索引

$ sudo apt-get update

4、安装docker

$ sudo apt-get install docker-engine

5、下载Ubuntu镜像

#默认下载最新版

$ sudo docker pull ubuntu

#如果想下载14.04版本的,可以这样指定

$ sudo docker pull ubuntu:14.04

6、在镜像里打印hello

$ sudo docker run ubuntu /bin/echo hello

打印出hello说明你已经成功安装docker并启动一个容器!

7、熟悉下常用命令

#查看docker环境信息

$ sudo docker version

# sudo docker -D info

#在仓库中搜索相关的镜像

$ sudo docker search centos

#查看已下载的镜像

$ sudo docker images

#启动镜像并进入容器

$ sudo docker run -itd --name=ubuntu ubuntu

run命令选项:

-t 模拟一个终端,-i进入这个容器,一般结合使用创建一个交互式容器。

-d 后台运行容器并打印ID,如果不加-i后面就不能附加进入容器

--name 为容器指定名称

run命令选项很多,先不过多介绍,在使用中你会慢慢了解到!

此时你已经创建并进入容器,怎么能退出呢?

# 按ctrl+d退出容器,会暂停容器,可以再启动(sudo docker start ID/NAME),里面数据不会丢失。

# 退出暂停容器太不符合常理啊!那么按ctrl+p+q退出docker,将不会暂停

#紧接查看运行的容器

$ sudo docker ps

#这时想进入某个容器可通过ps查看的ID进入运行的容器

$ sudo docker attach ID/NAME

#关闭运行的容器(start/restart)

$ sudo docker stop ID

#关闭所有运行的容器

$ sudo docker kill $(sudo docker ps -q)   #-q只显示ID

#删除一个容器

$ sudo docker rm ID/NAME

#删除所有容器

$ sudo docker rm $(sudo docker ps -q)

#删除一个镜像

$ sudo docker rmi ID

#查看Docker操作日志

$ sudo docker ps -a

#查看容器日志

$ sudo docker logs ID/NAME  

#查看容器配置详细信息

$ sudo docker inspect ID

此时,会返回一个json格式信息,我们可以获取指定的信息,比如获取IP地址:

$ sudo docker inspect -f '{{.NetworkSettings.IPAddress}}' ID

#列出容器内容文件状态变化情况

$ sudo docker diff ID

注:A - Add,D - Delet , C - Change

#查看容器资源使用情况

$ sudo docker stats

#免交互执行命令

$ sudo docker exec ID/NAME command


通过这篇博文,你已经对docker初步认识,可以很轻松的来管理容器了!

后续紧接会更新docker进阶内容,欢迎关注,谢谢支持!


目录
相关文章
|
2天前
|
Ubuntu Linux Docker
如何在Ubuntu 20.04系统中安装Docker
安装 Docker 引擎的步骤如下:首先更新系统包索引 (`sudo apt update`),安装必要依赖包 (`apt-transport-https` 等),添加 Docker 官方 GPG 密钥及 APT 仓库。接着再次更新包索引并安装 Docker 引擎及相关工具 (`docker-ce` 等)。最后启动 Docker 服务并设置开机自启,通过 `docker --version` 和运行测试容器 (`sudo docker run hello-world`) 验证安装是否成功。
29 0
|
8天前
|
存储 虚拟化 Docker
Docker Desktop 4.38 安装与配置全流程指南(Windows平台)
Docker Desktop 是容器化应用开发与部署的一体化工具,支持本地创建、管理和运行 Docker 容器。4.38 版本新增 GPU 加速、WSL 2 性能优化和 Kubernetes 1.28 集群管理功能,适用于微服务开发和 CI/CD 流水线搭建。安装要求为 Windows 10 2004 及以上(64 位),需启用 Hyper-V 或 WSL 2。硬件最低配置为 4GB 内存、20GB 存储和虚拟化技术支持的 CPU。安装步骤包括启用系统功能、下载并运行安装程序,完成后配置镜像加速并验证功能。常见问题涵盖 WSL 2 安装不完整、磁盘空间清理及容器外网访问等。
793 12
|
9天前
|
弹性计算 运维 Ubuntu
在阿里云ECS云服务器上安装、配置及高效使用Docker与Docker Compose
本文介绍了在阿里云ECS上使用Ubuntu系统安装和配置Docker及Docker Compose的详细步骤。通过这些工具,可以快速部署、弹性扩展和高效管理容器化应用,满足开发和运维需求。内容涵盖Docker的安装、镜像源配置、创建Web程序镜像以及使用Docker Compose部署WordPress等实际操作,并分享了使用体验,展示了阿里云实例的高性能和稳定性。
155 4
|
10天前
|
缓存 Ubuntu Linux
Docker Buildx 简介与安装指南
Docker Buildx 是一个强大的工具,提供了多架构构建、并行构建和高级缓存管理等功能。通过正确安装和配置 Buildx,可以显著提升 Docker 镜像的构建效率和灵活性。希望本文能帮助你更好地理解和使用 Docker Buildx,以提高开发和部署的效率。
127 16
|
1月前
|
消息中间件 Kafka Docker
docker compose 安装 kafka
通过本文的步骤,您可以快速在本地使用 Docker Compose 安装并配置 Kafka 和 Zookeeper。Docker Compose 简化了多容器应用的管理,方便快速搭建和测试分布式系统。
92 2
|
1月前
|
监控 Linux PHP
【02】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-2月12日优雅草简化Centos stream8安装zabbix7教程-本搭建教程非docker搭建教程-优雅草solution
【02】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-2月12日优雅草简化Centos stream8安装zabbix7教程-本搭建教程非docker搭建教程-优雅草solution
81 20
|
1月前
|
Ubuntu API 网络虚拟化
ubuntu22 编译安装docker,和docker容器方式安装 deepseek
本脚本适用于Ubuntu 22.04,主要功能包括编译安装Docker和安装DeepSeek模型。首先通过Apt源配置安装Docker,确保网络稳定(建议使用VPN)。接着下载并配置Docker二进制文件,创建Docker用户组并设置守护进程。随后拉取Debian 12镜像,安装系统必备工具,配置Ollama模型管理器,并最终部署和运行DeepSeek模型,提供API接口进行交互测试。
352 15
|
1月前
|
关系型数据库 MySQL 数据库
Docker Compose V2 安装常用数据库MySQL+Mongo
以上内容涵盖了使用 Docker Compose 安装和管理 MySQL 和 MongoDB 的详细步骤,希望对您有所帮助。
175 42
|
1月前
|
Linux Docker 容器
安装docker-18.06报错Error: libseccomp conflicts with docker-18.06
通过这些步骤,您可以成功在CentOS上安装Docker 18.06,并解决libseccomp的冲突问题。这些方法确保系统兼容性,并保证Docker的正常运行。
69 27
|
2月前
|
前端开发 应用服务中间件 nginx
docker安装nginx,前端项目运行
通过上述步骤,你可以轻松地在Docker中部署Nginx并运行前端项目。这种方法不仅简化了部署流程,还确保了环境的一致性,提高了开发和运维的效率。确保按步骤操作,并根据项目的具体需求进行相应的配置调整。
198 25