docker安装配置与基本使用
概述
Docker 是一个开源的应用容器引擎,它允许开发者打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux
机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app)。
核心组件
- Docker 镜像(Image):Docker 镜像是一个轻量级、可执行的独立软件包,它包含运行某个软件所需要的所有内容,包括代码、运行时、库、环境变量和配置文件。Docker
镜像可以从注册中心下载,也可以在本地构建。 - Docker 容器(Container):Docker 容器是由 Docker 镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是相互隔离的,保证安全的平台。
- Docker 客户端(Client):Docker 客户端是 Docker 用户与 Docker 守护进程交互的主要方式。客户端可以构建、运行和停止应用程序,也可以远程与
Docker 守护进程通信。 - Docker 守护进程(Daemon):Docker 守护进程是一个在后台运行的服务,负责管理 Docker 容器。守护进程监听 Docker API 请求并管理
Docker 对象,如镜像、容器、网络和卷。 - Docker 仓库(Registry):Docker 仓库是集中存放 Docker 镜像的地方。仓库可以是公开的,也可以是私有的。Docker Hub 是
Docker 官方提供的公共仓库,但用户也可以创建自己的私有仓库。
主要优势
- 轻量级和可移植:容器不需要启动虚拟机,因此可以在几秒内启动。同时,容器几乎可以在任何平台上运行。
- 隔离:Docker 容器提供了资源隔离和进程隔离,确保了应用的安全性。
- 版本控制:Docker 镜像可以被版本化和复用,便于部署和分发。
- 自动化和可扩展:Docker 与编排工具(如 Kubernetes)结合,可以实现容器的自动化部署和扩展。
安装环境
Ubuntu22.04
安装步骤
-
检查卸载老版本Docker
sudo apt-get remove docker docker-engine docker.io containerd runc
-
更新软件包
sudo apt-get update
sudo apt-get upgrade -
安装docker依赖
sudo apt-get install ca-certificates curl gnupg lsb-release
-
添加docker密钥
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
-
添加阿里云docker软件源
sudo add-apt-repository “deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs)
stable” -
安装docker
apt-get install docker-ce docker-ce-cli containerd.i
-
配置用户组
sudo usermod -aG docker $USER
-
重启
sudo usermod -aG docker $USER
-
检验docker是否安装成功
systemctl start docker
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
service docker restart
systemctl status docker显示绿色代表运行成功
基本使用
- 获取镜像
docker pull <容器名>
- 加载镜像
docker run [可选参数] 镜像名 [向启动容器中传入的命令]
- -i: 交互式操作。
- -d: 会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器)。
- -t: 表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。
- –name: 为创建的容器命名。(默认会随机给名字,不支持中文字符!!!)
- -v: 表示目录映射关系,即宿主机目录:容器中目录。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。
- -p: 表示端口映射,即宿主机端口:容器中端口。 比如:-p 8080:80 就是将容器中的80端口,映射到主机中的8080端口
- –network=host: 表示将主机的网络环境映射到容器中,使容器的网络与主机相同。每个 Docker 容器都有自己的网络连接空间连接到虚拟
LAN。使用此命令则会让容器和主机共享一个网络空间。
容器
- 启动已停止运行的容器
docker start <容器名或容器id>
- 停止一个容器
docker stop <容器名或容器id>
- 重启一个容器
docker restart <容器名或容器id>
- 查看当前所有正在运行的容器
docker ps
- 查看当前所有的容器
docker ps -a
- 使用过滤器(除了name外,常用的还可以指定id:id= 、所有停止的容器:status=exited,正在运行的容器:status=running 等)
docker ps -f name=指定的名字
- 显示2个上次创建的容器(2可以改变)
docker ps -n 2
- 显示最新创建的容器(包括所有状态)
docker ps -l
- 仅显示ip
docker ps -q
- 显示容器大小
docker ps -s