Docker
Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口。
Docker架构
dockers包括三个基本的概念:
- 镜像:用于创建Docker容器的模板,相当于是一个 root 文件系统
- 容器:独立运行的一个或一组应用,是镜像运行时的实体
- 仓库:代码控制中心,用来保存镜像。
安装Docker
#安装必备的软件包以允许apt通过 HTTPS 使用存储库
sudo apt-get install ca-certificates curl gnupg lsb-release
#添加Docker官方版本库的GPG密钥
sudo mkdir -p /etc/apt/keyrings && curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
#设置存储库
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
#安装Docker
sudo apt-get update && sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
#设置Docker开机启动
sudo systemctl enable docker
测试你的Docker是否已经安装完成
docker version
// 输出信息类似下面:
Client: Docker Engine - Community
Version: 24.0.2
API version: 1.43
Go version: go1.20.4
Git commit: cb74dfc
Built: Thu May 25 21:52:22 2023
OS/Arch: linux/amd64
Context: default
Server: Docker Engine - Community
Engine:
Version: 24.0.2
API version: 1.43 (minimum version 1.12)
Go version: go1.20.4
Git commit: 659604f
Built: Thu May 25 21:52:22 2023
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.6.21
GitCommit: 3dce8eb055cbb6872793272b4f20ed16117344f8
runc:
Version: 1.1.7
GitCommit: v1.1.7-0-g860f061
docker-init:
Version: 0.19.0
GitCommit: de40ad0
Docker基础命令
对容器的操作可以使用容器id或容器名称来指定具体是哪个容器
- 载入镜像:
docker pull ubuntu
- 启动容器:
docker run -it ubuntu /bin/bash
- 查看所有容器:
docker ps -a
- 后台运行:
docker run -itd --name ubuntu-test ubuntu /bin/bash
- 停止一个容器:
docker stop <容器 ID>.
- 重启容器:
docker restart <容器 ID>
- 进入容器:
docker exec -it <容器 ID> /bin/bash
- 导出容器:
docker export <容器 ID> filename.tar
- 导入容器:
cat filename.tar | docker import - test/ubuntu:v1
- 删除容器:
docker rm -f <容器 ID>
- 查看容器底层信息:
docker inspect <容器 ID>
- 列出本地镜像列表:
docker images
- 查找镜像:
docker search httpd
- 删除镜像:
docker rmi <镜像名称>
- 从已有容器创建镜像:
docker commit -m="some infomation" -a="jxc321" <容器 ID> jxc/ubuntu:v2
- 从Dockerfile文件创建镜像:
docker build -t jxc/ubuntu:v2 .
- 设置镜像标签:
docker tag <镜像 ID> jxc/ubuntu:v2