Docker学习记录

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。

Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

容器的使用

怎么拉容器

映射目录

进入容器

查看容器日志

Docker 命令

镜像命令

下载镜像:docker [image] pull NAME [:TAG]

示例:获取一个 Ubuntu 23.04系统的基础镜像:$ docker pull ubuntu : 23.04

注:

不指定TAG会默认选择latest标签,一般来说镜像的latest标签意味着镜像的内容会随版本更新,造成内容不稳定。

执行命令行代码以$开头,表明为普通用户,以#开头,表明为特权用户(root)

利用镜像创建容器,在其中执行bash应用,执行打印“Hello world"命令:

$是用户权限标记,不能放命令里

列出镜像:docker image

注:

REPOSITORY:镜像来自哪个仓库

TAG :镜像的标签信息

IMAGE ID:镜像ID,唯一标识镜像

CREATED:镜像的更新时间

SIZE:镜像的大小

使用TAG 命令添加镜像标签

示例:docker tag hello-world:latest hello:latest

hello-world:latest和 hello:latest实际上是指向同一镜像文件,只是不同别名。

查看镜像详细信息:docker inspect NAME [:TAG]

示例:docker inspect ubuntu : 23.04

查看镜像历史:history

示例:history ubuntu : 23.04

注:过长的命令一般会被自动截断,可使用--no--trunc输出完整的命令

删除镜像: docker rmi\docker image rm NAME [:TAG]/IMAGE ID

使用标签删除镜像

示例:docker rmi hello:latest

注:使用 镜像ID 删除镜像,当镜像有创建的容器时,镜像文件是无法删除的,可使用-f参数强行删除(不建议),先删除依赖镜像的所有容器,再来删除镜像。

使用prune 命令清理镜像:docker image prune
创建镜像:commit、import和build
  1. 基于已有容器创建 :docker commit 已有容器ID或名称 新镜像名:标签

  1. 基于本地模板导入

  1. 基于Docker file创建

存出和载入镜像:save和load

导出本地镜像ubuntu : 23.04为文件ubuntu_23.04.tar

示例:docker save -o ubuntu_23.04.tar ubuntu : 23.04

从文件ubuntu_23.04.tar 导入镜像到本地镜像列表

示例: docker load -i ubuntu_23.04.tar

上传镜像:docker push NAME [:TAG]

容器命令

容器是镜像的一个运行实例。

创建容器:create

示例:docker create -it ubuntu : latest

启动容器: docker start;新建并启动容器: docker run;等待容器退出并打印返回结果: 实docker container wait 守护态运行:docker run -d;查看容器输出:docker logs

注:-it:保持标准输入打开,并且分配一个伪终端

停止容器:pause/unpause,stop和prune

暂停容器:docker pause

解除暂停:docker unpause

终止容器:docker stop

先终止再重启:docker restart

打开容器:attach,exec

使用-d参数时,容器启动后会自动进入后台,用户无法看到信息,也不能进行操作,这时候需要进入采取attach,exec命令。

删除容器:docker rm

不能删除处于运行状态的容器,可以添加-f强制删除。

导入和导出容器:export和import

导出容器是指导出一个创建的容器到一个文件,此时可以不管容器的运行状态。

导出的文件可以通过docker import 命令导入变成镜像。

docker load与docker import的区别:

容器快照文件将丢失所有的历史记录和元数据信息,镜像储存文件将保持所有记录,体积更大。

查看容器:inspect、top和stats

查看容器详情:docker container inspect

查看容器内进程:docker top

查看统计信息:docker stats

Docker容器服务访问

端口映射

从外部访问容器内应用:

  1. 使用-P随机映射

可以看到,本地主机的32768被映射到了容器的5000端口,访问宿主主机的49155端口即可访问容器内web应用提供的界面。

  1. 使用-p指定映射端口

此时默认会绑定本地所有接口上的所有地址,多次使用-p标记可以绑定多个端口。

  1. 映射到指定地址的指定端口

示例:docker run -d -p 127.0.0.1:5000:5000 training/webapp python app.py

  1. 映射到指定地址的任意端口

示例:docker run -d -p 127.0.0.1: :5000 training/webapp python app.py

  1. 查看映射端口配置:docker port

容器互联

容器的互联是一种让多个容器中的应用进行快速交互的方式。

--link name:alias

数据库应用

MySQL(关系型数据库)

启动MySQL:docker run --name 容器名-e MYSQL_ROOT_PASSWORD=root用户密码 -d mysql[:TAG]

Redis(非关系数据库)

启动Redis

待补充。。。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

遥感天坑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值