前言:Docker 是一个开源的平台,用于开发、交付和运行应用程序。它利用容器化技术,将应用程序及其依赖项打包到一个称为容器的独立运行环境中,从而实现快速部署、可移植性和隔离性。

本文档参考【阿里云安装Docker并使用(Linux)】https://help.aliyun.com/zh/ecs/use-cases/deploy-and-use-docker-on-alibaba-cloud-linux-2-instances?spm=5176.12818093_-1363046575.top-nav.50.3be916d0grTsjw&scm=20140722.S_help%40%40%E6%96%87%E6%A1%A3%40%4051853.S_BB1%40bl%2BBB2%40bl%2BRQW%40ag0%2Bhot%2Bos0.ID_51853-RL_docker%E5%AE%89%E8%A3%85-LOC_console~UND~help-OR_ser-V_3-P0_0#aa11e8210adyt

docker安装

运行以下命令,下载docker-ce的yum源。

1
sudo wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

运行以下命令,安装Docker。

1
sudo yum -y install docker-ce

执行以下命令,检查Docker是否安装成功。

1
2
[root@***** ~]# sudo docker -v
Docker version 25.0.4, build 1a576c5

启动Docker服务,并设置开机自启动。

1
2
sudo systemctl start docker
sudo systemctl enable docker

查看Docker是否启动。

1
sudo systemctl status docker

image-20240507171722473

docker-compose安装

docker-compose是Docker官方提供的用于定义和运行多个Docker容器的开源容器编排工具,可以使用YAML文件来配置应用程序需要的所有服务,然后使用docker-compose运行命令解析YAML文件配置,创建并启动配置文件中的所有Docker服务,具有运维成本低、部署效率高等优势。

安装setuptools

1
sudo pip3 install -U pip setuptools

安装docker-compose

1
sudo pip3 install docker-compose

验证docker-compose是否安装成功

1
docker-compose --version

返回如下类似内容即安装完成

1
2
3
4
[root@***** ~]# docker-compose --version
/usr/local/lib/python3.6/site-packages/paramiko/transport.py:32: CryptographyDeprecationWarning: Python 3.6 is no longer supported by the Python core team. Therefore, support for it is deprecated in cryptography. The next release of cryptography will remove support for Python 3.6.
from cryptography.hazmat.backends import default_backend
docker-compose version 1.29.2, build unknown

docker使用

在 Docker 中,当你使用 docker pull 命令下载镜像时,这些镜像并不是存储在你的常规文件系统路径中,而是被 Docker 管理,并存储在 Docker 的内部存储系统中。这些具体的存储位置依赖于你的操作系统和 Docker 的配置。

对于绝大多数用户来说,了解 Docker 镜像的具体存储位置并不是必须的,因为 Docker 设计的初衷就是抽象这些细节。如果你需要管理磁盘空间或进行高级配置,理解这些信息可能会有帮助,但通常不需要直接操作这些文件和目录。

总的来说,Docker 管理和封装了镜像的存储细节,使得用户可以通过 Docker 的命令行工具和 API 进行交互,而不必关心底层的文件系统。

查看镜像文件

1
2
3
4
5
6
[root@***** docker]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
halohub/halo 2.15 0d3c7d1c2668 8 days ago 406MB
intemd/meting-api latest b6656afad90b 6 weeks ago 127MB
halohub/halo 2.0.2 1db9e0404c76 16 months ago 361MB
jenkins/jenkins 2.222.3-centos efa263f634d5 4 years ago 783MB

删除镜像

删除单个镜像文件

1
2
3
docker rmi [镜像ID]

docker rmi 1db9e0404c76

删除多个镜像文件

1
2
3
docker rmi [镜像ID1] [镜像ID2] [镜像ID3]

docker rmi 1db9e0404c76 efa263f634d5

运行镜像

1
2
3
4
5
docker run -d --name [容器名称] -p [外部端口]:[内部端口] [镜像名称]:[标签]

docker run -d --name halo-2.15 -p 8080:8080 halohub/halo:2.15

docker run -d --name meting -p 3000:3000 intemd/meting-api:latest