Docker基础使用

news/2024/6/16 7:16:02 标签: 运维, 大数据, 操作系统

在Windows下开发,安装软件不像Linux那样方便,常常还没开始写代码,搭建环境就已经耗费了半天了。
这个时候使用Docker来快速搭建一套开发环境,比如MySQL、Redis、MongoDB等等,还是很方便的,能够节省大量开发前准备的工作,提高效率。
下面介绍能够基本满足这个需求的Docker的最基础使用。

1. 安装

首先到Docker官网(需要注册)下载Docker Community Edition for Windows
然后安装,安装成后,docker会自动启动,右下角会有个鲸鱼的图标
打开cmd或者powershell,执行

docker version

正常情况会输出docker的client和server的版本及其他信息

2. 配置镜像仓库地址

这一步不是必须的
由于网络原因从官方镜像仓库拉取太慢,所以配置国内镜像仓库地址

  1. 对右下角鲸鱼图标右键 - Setting - Deamons
  2. 在Registry mirrors中添加Docker中国官方镜像加速地址:https://registry.docker-cn.com
  3. 点击Apply,Docker服务会重启,完成后就生效了

3. 使用

3.1 查询/拉取镜像

命令: docker search|pull image-name[:image-version]
以Elasticsearch为例:

# 查询镜像
docker search elasticsearch
# 拉取镜像
docker pull elasticsearch:2.4.6
如果不指定版本,则使用默认版本号release,拉取最新版本

3.2 运行容器

命令: docker run [OPTIONS] image-name[:image-version]
docker run 命令有很多参数,这里只介绍最多用到的几个,以elasticsearch为例:

docker run -d -p 9200:9200 --name es elasticsearch:2.4.6

-d:表示以deamon模式运行
-p:指定端口映射,前面的是外部访问端口,后面的是容器内部的端口
--name:指定容器的名称,不指定的话,docker会随机生成一个名称

3.3 查看容器列表

命令: docker ps [-a]
docker ps 会列出当前正在运行的容器
加上 -a 参数会列出所有的容器

3.4 启动/停止容器

命令: docker start|stop container-name|container-id

# 先停止es
docker stop es
# 再启动es
docker start es

3.5 操作容器

有时候需要对容器进行一些简单修改,可以通过docker exec命令来实现
docker exec -i -t container-name|container-id command
例如给上面的es容器安装head插件:

docker exec -it es /bin/bash
# 执行命令后,会进入容器,并打开bash命令行
# 进入elasticsearch安装目录
$ cd /usr/share/elasticsearch
# 安装head插件
$ ./bin/plugin install mobz/elasticsearch-head
# 等待安装完成,退出容器
$ exit
# 重启容器
docker restart es

-i:以交互模式运行容器,通常与 -t 同时使用
-t:为容器重新分配一个伪终端,通常与 -i 同时使用

3.6 查看容器日志

命令:docker logs [-f] container-name|container-id

docker logs -f es

-f:相当于 tail -f

3.7 删除容器

命令: docker rm [-f] container-name|container-id

docker rm es

-f:如果容器正在运行,是无法直接删除的,要么先停止容器,要么加 -f 强制删除

注意: 删除容器是不可逆的,会导致容器中的数据丢失
最好的办法是通过挂载外部目录,把数据保存在宿主机器上

3.8 镜像管理

查看本地镜像列表: docker images
删除本地镜像: docker rmi iamge-name|image-id


http://www.niftyadmin.cn/n/1214954.html

相关文章

集算器初体验

1、从经典的Hello, world! 开始先看图(1):图(1)新建p1程序文件,在A1格子中输入output(“Hello, world!”)。点击图(1)中红圈圈住的三角按钮,执行p1的代码,就可…

九月任务

1:加强状压dp,自己写总结。 2:树形dp 3:数位dp 4:线性dp(重点) 5:拓扑排序 转载于:https://www.cnblogs.com/fsf-fighting/p/9558425.html

spring sringboot 加载配置文件 多目录配置文件 多级分类配置文件

ResourcePatternResolver resolver new PathMatchingResourcePatternResolver(); Resource[] resources resolver.getResources("/job/**/*.json");/job/*.json 只包含job目录下文件。 /job/*/*.json 只包含子级目录中的文件,不包括job目录下文件。 /jo…

以太坊智能合约重放攻击细节剖析

1 攻击背景 在资产管理体系中,常有委托管理的情况,委托人将资产给受托人管理,委托人支付一定的费用给受托人。这个业务场景在智能合约中也比较普遍。 合约设计 function transferProxy(address _from, address _to, uint256 _value, uint256 …

笔记cloud

虚拟机的组成—> 内核虚拟化模块(KVM)—> 系统设备仿真(QEMU)—> 虚拟机管理程序(LIBVIRT)一个XML文件(虚拟机配置声明文件)— 位置:/etc/libvirt/qemu一个磁盘…

搭建SSH框架

SSH架构 开发登录功能 添加所需的jar文件 未整合的项目结构 package cn.houserent.entity;public class HouseUser implements java.io.Serializable {private static final long serialVersionUID -4357515988015534310L;// Fieldsprivate Integer id;private String passwor…

Python进程专题5:进程间通信

上一篇文章:Python进程专题4:进程池Pool下一篇文章:Python进程专题6:共享数据与同步 multiprocessing模块支持的进程间通信主要有两种:管道和队列。一般来说,发送较少的大对象比发送大量的小对象要好。 Que…

word上怎么把图片拼接到一起_图片合并,WORD如何将文字与图片合并

WORD如何将文字与图片合并简单!第一种,分别插入文本框和图片,双击图片,设置其版式为"衬于文字下方";在文本框中输入文字后,双击文本框边线,设置其版式为"浮于文字上方",边框颜色为"无",然后随意拖动图片和文本框达到各种合并效果.如果想把它们合…