引用Docker官网的解释:Docker是一个用于开发、交付和运行应用程序的开放平台。 Docker使您能够将应用程序与基础架构分离,以便 您可以快速交付软件。使用 Docker,您可以管理您的基础设施以与管理应用程序相同的方式。通过利用 Docker 的发布、测试和部署代码的方法,您可以显著减少编写代码和在生产环境中运行代码之间的延迟。 一个开源的应用容器引擎,可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器(Container):轻量化的运行实例,包含应用代码、运行时环境和依赖库。基于镜像创建,与其他容器隔离,共享主机操作系统内核(比虚拟机更高效)。
镜像(Image):只读模板,定义了容器的运行环境(如操作系统、软件配置等)。通过分层存储(Layer)优化空间和构建速度。
Dockerfile:文本文件,描述如何自动构建镜像(例如指定基础镜像、安装软件、复制文件等)。
仓库(Registry):存储和分发镜像的平台,如 Docker Hub(官方公共仓库)或私有仓库(如 Harbor)。 引用Docker官网的结构图:

直接yum安装,发现没有对应下载包

添加国内阿里云的yum源
yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo再次执行 yum install docker-ce docker-ce-cli 待安装完成即可。
启动docker服务:systemctl start docker
启动完成可通过docker version查看版本。
Docker File主要是指导docker如何创建docker镜像,这里使用intellij idea与docker file来创建。 intellij idea需要提前安装docker的插件,然后再项目根目录下新建一个Dockerfile文件:
FROM openjdk:8-jre
COPY *.jar /app.jar
EXPOSE 8080
ENTRYPOINT ["java","-jar","app.jar"]FROM:指定基础镜像,用于后续的指令构建。
COPY:将文件或目录复制到镜像中。
EXPOSE:声明容器运行时监听的特定网络端口。
ENTRYPOINT:设置容器启动时的主要命令,不可被覆盖。
最后执行docker插件的docker:build即可打包镜像了。

说明:在intellij idea安装docker插件后,可以远程管理服务器上的docker服务,包括镜像列表,容器列表等。 如需要在idea中访问docker,需要调整docker的远程访问 在/usr/lib/systemd/system/docker.service文件中添加
-H tcp://127.0.0.1:2375因为自带的docker.service文件已经有Service的设置了,所以我们只需要添加后面的两句。

然后重新加载配置并重启
systemctl daemon-reload
systemctl restart docker.service docker images 查看镜像列表
docker pull hello-world 拉取镜像
docker rmi hello-world 删除镜像
镜像创建可根据docker file进行创建或者使用仓库拉取。
这一步以拉取mysql的镜像进行学习。因为docker默认的镜像地址国内可能无法访问,所以需要添加国内腾讯云的镜像。 在/etc/docker/daemon.json中加入镜像地址,如果该文件不存在就新建一个
vi /etc/docker/daemon.json
{
"registry-mirrors": [
"https://mirror.ccs.tencentyun.com"
]
}保存后使用docker pull mysql:latest进行下载

使用docker images查看镜像列表可以看到有mysql的镜像了

docker run 根据镜像创建容器
docker start 启动容器
docker stop 停止容器
docker ps 查看docker容器进程
根据上一步拉取的镜像,这里使用run来执行创建镜像
docker run -itd –name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=yourpassword mysql常用参数说明:
常用参数说明:
-d: 后台运行容器并返回容器 ID。
-it: 交互式运行容器,分配一个伪终端。
--name: 给容器指定一个名称。
-p: 端口映射,格式为 host_port:container_port。
-v: 挂载卷,格式为 host_dir:container_dir。
--rm: 容器停止后自动删除容器。
--env 或 -e: 设置环境变量。
--network: 指定容器的网络模式。
--restart: 容器的重启策略(如 no、on-failure、always、unless-stopped)。
-u: 指定用户。
并通过docker ps查看运行情况

netstat查看到端口也有正常监听,使用dbeaver连接数据库正常连接

在使用过程中,可能需要进入容器进行一些操作,可以使用docker exec命令
docker exec -it 容器id /bin/bash