什么是Docker

什么是Docker

Docker其实就是可以打包程序和运行环境,把环境和程序一起发布的容器。

Docker技术的三大核心概念

1.镜像(imgae)

2.容器(container)

3.仓库(Repository)

Docker镜像

Docker镜像类似于虚拟机镜像,可以将它理解为面向Dokcer引擎的模板,包含了文件系统

镜像从何而来

1.从Docker Hub下载

2.通过Docker file 自己创建出来

Docker容器

Docker容器类似于一个轻量级的沙箱,Docker利用容器来运行和隔离应用。容器是从镜像创建的应用运行实例,可以将其启动、开始、停止、删除。儿这些容器都是相互隔离,互不可见的。

 

Docker仓库

Docker仓库(Repository)类似于代码仓库,是Docker集中存放镜像文件的场所。目前,最大的公开仓库是Docker Hub,存放了数量庞大的镜像供用户下载。国内的公开仓库包括Docker Pool等,可以提供稳定的国内访问。

Docker安装

yum安装最快最方便

关闭防火墙

systemctl stop firewalld

关闭selinux

vim /etc/selinux/config
SELINUX=disabled

安装docker引擎

yum install -y docker

启动docker

systemctl start docker

设置docker自启动

systemctl  enable docker

测试docker是否安装成功

docker run hello-world

Docker核心命令_镜像命令

Docker运行容器前需要本地存在对应的镜像,如果镜像不存在本地,Docker会尝试先从默认镜像仓库下载(默人使用Docker Hub公共注册服务器中的仓库),用户也可以通过配置,使用自定义的镜像仓库

镜像下载

语法格式

docker pull 镜像名字:[tag]

tag:为镜像版本,如果不指定tag,则下载最新版本

查看镜像

[root@docker ~]#docker images

镜像搜索

docker serach 镜像名字

 

删除镜像

docker rmi 源名字
docker rmi image id
当我们有了镜像,才可以创建容器,创建一个centos容器来学习

创建容器

Docker的容器十分轻量级,用户可以随时创建或者删除容器

语法格式

docker create -it 镜像名字

注意:
使用docker create命令新建的容器处于停止状态,可以使用
docker start命令来启动它。

列出容器

docker ps

参数:
-a: 显示未启动容器
-q:返回容器id号

新建并启动容器

启动容器有两种方式,一种是基于镜像新建一个容器并启动,另外一个是将在终止状态(stopped)的容器重新启动。所需要的命令主要为docker run,等价于先执行docker create命令,在执行docker start命令。

语法格式

docker run 镜像名字  /bin/echo 'hello world'

Docker在后台运行的标准操作包括:

1.检查本地是否存在指定的镜像,不存在就从公有仓库下载。
2.利用镜像创建并启动一个容器。
3.分配一个文件系统,并在只读的镜像层外面挂载一层可读写层。
4.从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中去。
5.从地址池配置一个IP地址给容器。
6.执行用户指定的应用程序。
7.执行完毕后容器被终止。

终止容器

docker stop 容器id

处于终止状态的容器,可以通过docker start命令来重新启动:

docker start 容器id

此外,docker restart命令会将一个运行态的容器终止,然后再重新 启动

docker restart 容器id

Docker核心命令_其他命令

查看日志

docker  logs 容器id

参数:
-f, --follow 跟踪实时日志
--since string 显示自某个timestamp之后的日志,或相对时间,如42m(即42分钟)
--tail string 从日志末尾显示多少行日志, 默认是all
-t, --timestamps 显示时间戳
--until string 显示自某个timestamp之前的日志,或相对时间,如42m(即42分钟)

查看容器里面的进程

docker top 容器id

进入容器

docker exec -it 容器id  /bin/bash

从容器拷贝文件到主机上

docker cp 容器id: 容器内路径 目录路径

容器数据卷

Docker中的数据可以存储在类似于虚拟机磁盘的介质中,在Docker中称为数据卷(Data Volume)

数据卷概念

1.数据卷是宿主机中的一个目录或文件。
2.当容器目录和数据卷目录绑定后,对方修改会立即同步。
3.一个数据卷可以同时被多个容器同时挂载。
4.一个容器也可以被挂载多个数据卷。

数据卷作用

1.容器数据持久化
2.外部机器和容器间接通信
3.容器之间数据交换
一句话:卷技术就是为了实现数据的持久化和同步操作,容器间也是数据共享

Docker数据管理_配置数据卷

docker run -v 宿主机目录(文件):容器内目录(文件) 镜像名称
注意:
1.目录必须是绝对路径
2.如果目录不存在则会自动创建
3.可以挂载多个数据卷

示例

给Tomcat服务器挂载/opt/webapps路径
docker run -d --name mytomcat -p 8080:8080 -v /opt/webapps:/usr/local/tomcat/webapps tomcat

Volume基本使用

参数:
create #创建数据卷
inspect #查看数据卷元数据
ls #查看数据卷列表
prune #删除所有未使用的卷
rm #删除数据卷

创建一个自定义容器

docker volume create edc-tomcat-vol

查看所有容器卷

docker volume ls

查看指定容器卷详情信息

docker volume inspect edc-tomcat-vol

删除数据卷

docker volume rm edc-tomcat-vol

使用指定卷容器

有了自定义容器卷,我们可以创建一个使用这个数据卷的容器,这里我们以tomcat为例:

docker run -d -it --name=edc-tomcat -p 8080:8080 -v edc-tomcat-vol:/usr/local/tomcat/webapps tomcat
注意:
-v代表挂载数据卷,这里使用自定数据卷edc-tomcat-vol,并且
将数据卷挂载到/usr/local/tomcat/webapps 。如果没有通过-v
指定,那么Docker会默认帮我们创建匿名数据卷进行映射和挂
载。
 
posted @   小白不想写代码  阅读(583)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示