Docker的基本使用笔记

发布时间 - 2026-01-11 00:50:10    点击率:

Docker是一个近年来非常火热的开源项目,使用Docker作为容器并将我们的应用程序运行在Docker中方便部署及测试,也利于开发环境的隔离。最近简单地学习了一下Docker的基本使用,在此做一个学习笔记。

安装

使用的第一步当然就是安装了,可以到Docker的 官网 上,根据不同操作系统下载安装即可。

安装完成之后可以在命令行中运行

docker --version

如果安装正确,那么会输出相应的版本信息

Docker version 1.12.0, build 8eab29e

Docker镜像(image)命令

安装完成之后,就可以下载镜像了。类似于Github,Docker也有一个 DockerHub ,当我们 pull 镜像的时候是从DockerHub上下载相应的镜像。除了可以在 https://registry.hub.docker.com/ 检索镜像以外,还可以使用以下命令检索:

Docker镜像搜索

docker search 镜像名

比如搜索Redis镜像:

docker search redis

可以得到以下结果:

NAME           DESCRIPTION                   STARS   OFFICIAL  AUTOMATED
redis           Redis is an open source key-value store th...  2626   [OK]    
sameersbn/redis                              33          [OK]
torusware/speedus-redis  Always updated official Redis docker image...  30          [OK]
bitnami/redis       Bitnami Redis Docker Image           23          [OK]
anapsix/redis       11MB Redis server image over AlpineLinux    6          [OK]
webhippie/redis      Docker images for redis             5          [OK]
williamyeh/redis     Redis image for Docker             3          [OK]
clue/redis-benchmark   A minimal docker image to ease running the...  3          [OK]
unblibraries/redis    Leverages phusion/baseimage to deploy a ba...  2          [OK]
miko2u/redis       Redis                      1          [OK]
greytip/redis       redis 3.0.3                   1          [OK]
servivum/redis      Redis Docker Image               1          [OK]
kampka/redis       A Redis image build from source on top of ...  1          [OK]
appelgriebsch/redis    Configurable redis container based on Alpi...  0          [OK]
yfix/redis        Yfix docker redis                0          [OK]
cloudposse/redis     Standalone redis service            0          [OK]
watsco/redis       Watsco redis base                0          [OK]
nanobox/redis       Redis service for nanobox.io          0          [OK]
xataz/redis        Light redis image                0          [OK]
trelllis/redis      Redis Replication                0          [OK]
khipu/redis        customized redis                0          [OK]
maestrano/redis      Redis is an open source key-value store th...  0          [OK]
rounds/10m-redis     redis for hubot brain              0          [OK]
higebu/redis-commander  Redis Commander Docker image. https://gith...  0          [OK]
drupaldocker/redis    Redis for Drupal                0          [OK]

可以看到第一个就是官方的镜像。

镜像下载

检索到镜像之后就是下载镜像,还是以Redis为例:

docker pull redis

镜像列表

下载完成之后可以查看本地镜像

docker images

#output:

REPOSITORY     TAG         IMAGE ID      CREATED       SIZE
redis        latest       50e38ce0458f    3 days ago     185 MB

REPOSITORY是镜像名;TAG是软件版本,latest为最新版;IMAGE ID是当前镜像的唯一标示;CREATED是当前镜像创建时间;SIZE是当前镜像的大小。

镜像删除

如果需要删除一个镜像,可以使用以下命令

docker rmi image-id

删除所有镜像

docker rmi ${docker images -q}

Docker容器命令

容器基本操作

最简单的运行镜像为容器

docker run —-name container-name -d image-name

–name参数是为容器取的名字,-d表示detached,在后台运行容器,image-name是要使用哪个镜像来运行容器。

运行一个Redis容器

docker run --name test-redis -d redis

容器列表

查看运行中的容器列表

docker ps

可以看到我们之前运行的Redis容器

CONTAINER ID    IMAGE        COMMAND         CREATED       STATUS       PORTS        NAMES
b45e490b7f99    redis        "docker-entrypoint.sh"  15 minutes ago   Up 4 seconds    6379/tcp      test-redis

CONTAINER ID是在启动的时候Docker生成的ID;IMAGE是该容器使用的镜像;COMMAND是容器启动时调用的命令;CREATED是容器的创建时间;STATUS是当前容器的状态;PORTS是容器系统所使用的端口号(注意,这里的端口号不是本机的端口号),Redis默认使用6379端口;NAMES是给容器定义的名称。

查看运行和停止状态的容器

docker ps -a

停止和启动容器

停止容器

docker stop container-name/container-id

通过容器名称或者容器id来停止容器,例如停止之前的Redis容器:

docker stop test-redis

启动容器

docker start container-name/container-id

再次启动之前的容器

docker start test-redis

端口映射

Docker中运行的程序的端口是不能直接访问的,需要映射到本地,通过-p参数实现,例如将6379端口映射到本机的6378端口

docker run -d -p 6378:6379 —-name port-redis redis

运行一个名字为port-redis的容器,使用redis镜像,将Docker中的redis的6379端口映射到本机的6378端口。

映射完成之后我们就可以连接Redis进行开发等等,非常方便。

删除容器

删除单个容器

docker rm container-id

删除所有容器

docker rm ${docker ps -a -q}

容器日志

查看当前容器的日志

docker logs container-name/container-id

我们可以查看之前redis镜像的容器

docker logs test-redis

可以看到redis启动的日志

登录容器

运行中的容器其实就是一个完备的Linux操作系统,我们可以登录访问当前容器,登录后可以在容器中进行常规的Linux操作。

docker exec -it container-id/container-name bash

使用 exit 命令退出当前登录。


# docker使用  # docker使用教程  # 为什么要使用docker  # docker安装使用  # Docker compose搭建ELK服务基本使用  # docker基本命令及使用实例详解  # Docker容器镜像相关命令基本介绍与使用  # Docker的基本命令使用笔记  # Docker基本命令使用详解(推荐)  # Docker安装及基本使用方法详细介绍  # 使用Docker来加速构建Android应用的基本部署思路解析  # docker的基本使用及使如何用Docker 运行D435i  # 镜像  # 可以看到  # 本机  # 端口号  # 我们可以  # 端口映射  # 是一个  # 操作系统  # 是在  # 也有  # 还可以  # 第一个  # 在此  # 是从  # 并将  # 做一个  # 可以使用  # 为例  # 当我们  # 可以得到 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何在云主机上快速搭建多站点网站?  Laravel怎么连接多个数据库_Laravel多数据库连接配置  Bootstrap整体框架之CSS12栅格系统  Laravel如何操作JSON类型的数据库字段?(Eloquent示例)  如何用美橙互联一键搭建多站合一网站?  Linux虚拟化技术教程_KVMQEMU虚拟机安装与调优  laravel怎么为API路由添加签名中间件保护_laravel API路由签名中间件保护方法  Laravel如何创建自定义Facades?(详细步骤)  简历在线制作网站免费版,如何创建个人简历?  如何基于云服务器快速搭建网站及云盘系统?  LinuxShell函数封装方法_脚本复用设计思路【教程】  Laravel Session怎么存储_Laravel Session驱动配置详解  Edge浏览器如何截图和滚动截图_微软Edge网页捕获功能使用教程【技巧】  Laravel如何使用Facades(门面)及其工作原理_Laravel门面模式与底层机制  如何在阿里云购买域名并搭建网站?  node.js报错:Cannot find module 'ejs'的解决办法  Android利用动画实现背景逐渐变暗  怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?  高防服务器如何保障网站安全无虞?  佛山网站制作系统,佛山企业变更地址网上办理步骤?  如何在橙子建站上传落地页?操作指南详解  网站建设保证美观性,需要考虑的几点问题!  Linux系统命令中tree命令详解  如何快速搭建安全的FTP站点?  如何在沈阳梯子盘古建站优化SEO排名与功能模块?  Laravel如何使用API Resources格式化JSON响应_Laravel数据资源封装与格式化输出  java获取注册ip实例  python中快速进行多个字符替换的方法小结  新三国志曹操传主线渭水交兵攻略  Laravel路由Route怎么设置_Laravel基础路由定义与参数传递规则【详解】  HTML5空格和margin有啥区别_空格与外边距的使用场景【说明】  如何在浏览器中启用Flash_2025年继续使用Flash Player的方法【过时】  在centOS 7安装mysql 5.7的详细教程  html5如何实现懒加载图片_ intersectionobserver api用法【教程】  如何用JavaScript实现文本编辑器_光标和选区怎么处理  JS经典正则表达式笔试题汇总  桂林网站制作公司有哪些,桂林马拉松怎么报名?  如何在万网开始建站?分步指南解析  Laravel如何使用Sanctum进行API认证?(SPA实战)  Laravel如何与Vue.js集成_Laravel + Vue前后端分离项目搭建指南  lovemo网页版地址 lovemo官网手机登录  Python函数文档自动校验_规范解析【教程】  Thinkphp 中 distinct 的用法解析  Laravel怎么写单元测试_PHPUnit在Laravel项目中的基础测试入门  ,交易猫的商品怎么发布到网站上去?  浅析上传头像示例及其注意事项  Laravel如何与Docker(Sail)协同开发?(环境搭建教程)  Linux系统命令中screen命令详解  Laravel如何使用Service Container和依赖注入?(代码示例)  Laravel如何部署到服务器_线上部署Laravel项目的完整流程与步骤