Docker基础使用

news/2023/12/1 7:48:40 标签: 运维, 大数据, 操作系统

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

深入浅出Git教程【转载】转载

深入浅出Git教程(转载) 目录一、版本控制概要1.1、什么是版本控制1.2、常用术语1.3、常见的版本控制器1.4、版本控制分类1.4.1、本地版本控制1.4.2、集中版本控制1.4.3、分布式版本控制1.5、Git与SVN最主要区别二、Git安装与配置2.1、什么是Git2.2、搭建…

博饼小程序_融情月意,归心共聚|和融创一起博饼过中秋

融情月意Mid-Autumn Festival一人掷骰群凝目几桌呼声众动容无论老小尽欢畅不分男女皆用功宵中娱乐心存月争夺状元劲无穷这就是博饼!秋分送爽 丹桂飘香2020年10月1日11:00 “融情月意,归心共聚”融创福建第三届中秋博饼节决胜赛在福州闽江世纪金源盛大举行…

openstack pike版本安装笔记1(openstack安装前的准备)

环境状态: os:centos7.3 openstack:pike controller节点ip:192.168.1.51(外网地址),10.10.0.51(内), hostname:con.colinshi.top Computer节点ip:10.10.0.52,hostname:computer.colinshi.top share节点ip:10.10.0.52,hostname:share1.colinshi.top 数据库使用&#…

android 技能标签功能_Android中选项卡功能的实现

Android中使用TabHost和TabWidget来实现选项卡功能。TabHost必须是布局的根节点,它包含两个子节点:实现选项卡功能有两种方法,一种是将多个View放在同一个Activity中,然后使用使用标签来进行切换。另一种是直接使用标签切换不同的…

DOM - 表单操作

获取表单 获取表单元素 获取表单元素的方式除了Document对象提供的一系列方法外&#xff0c;还有Document对象提供的forms属性。该属性获取当前HTML页面所有表单的集合&#xff0c;返回HTMLCollection对象&#xff0c;该对象封装了当前HTML页面所有的表单对象。 <body> &…

vs2017 c++使用json_dcmtk3.6.5在vs2017下的编译

一、下载源码和依赖项源码&#xff1a;https://dicom.offis.de/download/dcmtk/dcmtk365/依赖项&#xff1a;https://dicom.offis.de/download/dcmtk/dcmtk365/support/在第一个链接中下载dcmtk.3.6.5.tar.gz或dcmtk-3.6.5.zip&#xff0c;两者内容是相同的&#xff0c;只不过是…

android全局计时_Android定时器AlarmManager

AlarmManager是Android的全局定时器。就是在指定时间做一个事情(封装在PendingIntent)。通过PendingIntent的getActivity()、getService()或getBroadcast()来执行。听起来AlarmManager和Timer很类似&#xff0c;但是Timer有可能因为手机休眠而被杀掉服务&#xff0c;但是AlarmM…

手写缓慢滚动的动画(分享)(楼主比较懒)

转载于:https://juejin.im/post/5b8e9d4251882542b366d7de
最新文章