Docker 基本操作(附 redis、nginx部署)
下载安装 Docker 也有一个月了。中间看过几次也没有深入的了解研究。就只是拉取了两个镜像简单的看了看。
昨天因一个项目中需要用到 Redis ,因为是 Windows 系统,看了下安装包比较老了有3年没有维护,这就想到了在 Docker 中部署一个 Redis 用。
一、安装 Docker
1、Windows 下安装 Docker 有两种方式:“Dockeer for Windows Installer.exe” 和“DockerToolbox.exe”。
这两个安装后操作的有些不一样。我是安装 “Dockeer for Windows Installer.exe”,在安装的过程中加把 Docker 加到了环境变量中,安装完成后可以直接在 cmd 中用命令行操作。
2、Windows 下需要开启 Hyper-V 功能,并且开启虚拟化,出现问题可以网上搜索下解决方式。
3、安装完成后,要先注册 DockerID ,登录后进行配置:
在状态栏右键 Docker 图标 =》 Settings ,打开设置界面

需要配置的主要有两个:
a、挂载磁盘(Shared Drives),因为在运行镜像实例时有些会挂载本地文件,这个地方没有配置会报错;
b、镜像加速(Deamon),由于总所周知的原因,配置为国内的镜像地址;
二、基本命令行
代码中符号说明:
[Pro]:中括号中的参数,必要
{Pro}:大括号中的参数,可选
1、查找镜像:
docker search [Name]
2、拉取镜像:
docker pull [Name]{:3.2}
冒号后面的是版本号,不加版本号拉取最新的
3、查看本地镜像:
docker images {Name}
可以指定查看的镜像名,否则查看全部的
4、查看本地实例:
docker ps {-a}
-a:查看所有的,暂停的也包含在内;否则只显示运行中的;
5、创建容器实例:
docker run -d -p : {--name test1} [Name]{:3.2} {--requirepass ""} {-v /etc/localtime:/etc/localtime:ro} {--restart always}
-d:标识在后台运行,不阻命令行界面,可以继续输入其他的命令,是 detach 缩写
-p:标识端口,左边的是实际系统的端口,右侧是容器中的端口
--name:实例的名称;把镜像比作类,实例就是这个类实例化的对象,这个名称就是实例对象名称,不设置会默认随机一个
--requirepass:设置密码
-v:设置映射时区
--restart:重启机制:在docker run时通过--restart 设置守护机制,有四种模式
no:不自动重新启动容器。(默认)
on-failure :由于一个错误退出,它表现为退出状态不等于0,自动启动容器
unless-stopped :除非被显式停止 stop、kill 否则docker服务停止或自动重启,自动启动容器
always:如果容器停止,总是重新启动容器。(这是官方解释,我测试了如果手动kill容器 无法自动重启,应该也属于正常 如果手动都不能让他停止 也许我们会更烦恼怎么停止它~~~~)
对于上面的模式 我们生产常用的只有 always
6、进入容器实例:
docker exec -it [containerID] bash
containerID:容器ID
这个只是进入容器实例,例如redis,要用客户端操作:在打出:redis-cli -c -p 6379,这个是登录了,可以操作了
7、停止容器实例:
docker stop [Name/ID]
docker kill [Name/ID]
stop 会给一定时间给容器自己保存状态,kill直接关闭
Name:创建时的名称
8、删除容器实例:
docker rm [Name]
9、删除镜像:
docker rmi [ImageID]
10、启动容器实例:
docker start [Name/ID] {-i} {-t}
-i:交互模式启动;
-t:附加进程方式启动;
11、重启容器实例:
docker restart [Name/ID] {-t=}
-t:关闭容器的时限,超时未关闭直接kill,默认10s,这个时间就是保存容器状态的时间;
12、查看镜像详情:
docker inspect [Name]
三、运行 Redis、Nginx 实例
1、redis
比较简单,先拉取镜像,运行镜像实例。
docker pull redis
docker run -d -p : --name redis01 redis
默认拉取最新的版本镜像,运行实例以后台进程方式,名称为 redis01
2、nginx
a、先拉取镜像
docker pull nginx
b、在本地的放置 nginx 文件的文件夹下建立:conf、logs、www三个文件夹,从容器实例拷贝配置文件到本地(没有实例的话可以先运行一个一般实例,从这个拷贝)
docker cp nginx01:/etc/nginx/nginx.conf D:\Docker\nginx\conf
c、运行实例
docker run -d -p : --name nginx01 -v D:\Docker\nginx\www:/usr/share/nginx/html -v D:\Docker\nginx\conf/nginx.c
onf:/etc/nginx/nginx.conf -v D:\Docker\nginx\logs:/var/log/nginx nginx
这里挂载本地文件到运行的容器
d、要发布的文件拷贝到 www 文件夹下即可
现在打开就可以看到发布的站点
加速镜像地址:
网易加速器链接: http://hub-mirror.c.163.com
ustc加速器链接:https://docker.mirrors.ustc.edu.cn
Daocloud加速:http://f1361db2.m.daocloud.io http://69292621.m.daocloud.io
别的如阿里云,需要注册后才可以用。
Docker 基本操作(附 redis、nginx部署)的更多相关文章
- CentOS7上Docker简单安装及nginx部署
安装 如果原来安装过docker,先把原来的删掉,再安装(如果是首次安装docker忽略第一步,直接在第二步看起) 1.1先查看下已经安装了那些docker yum list installed | ...
- 利用Docker Hub上的Nginx部署Web应用
Docker Hub上提供了很多镜像,如Nginx,我们不需要自己从ubuntu开始装Nginx再做发布,只需要先下载镜像到本地 docker pull nginx 在/opt下新建文件夹API,将需 ...
- docker基本操作和部署
#安装所需的软件包.yum-utils 提供了 yum-config-manager ,并且 device mapper 存储驱动程序需要 device-mapper-persistent-data ...
- docker实战之通过nginx镜像来部署静态页
本章我们主要讲解如何通过docker构建一个nginx容器,这里我们以部署一个静态html为素材来进行演示. 首先我们通过[docker search nginx]命令来查找Docker Hub上的n ...
- 【Docker】 使用Docker 在阿里云 Centos7 部署 MySQL 和 Redis (二)
系列目录: [Docker] CentOS7 安装 Docker 及其使用方法 ( 一 ) [Docker] 使用Docker 在阿里云 Centos7 部署 MySQL 和 Redis (二) [D ...
- 【docker】【redis】2.docker上设置redis集群---Redis Cluster部署【集群服务】【解决在docker中redis启动后,状态为Restarting,日志报错:Configured to not listen anywhere, exiting.问题】【Waiting for the cluster to join...问题】
参考地址:https://www.cnblogs.com/zhoujinyi/p/6477133.html https://www.cnblogs.com/cxbhakim/p/9151720.htm ...
- docker 用nginx 部署 node应用
1.查询镜像 # 1.查询镜像. docker search nginx 2.拉取指定的镜像 # 2.拉取指定的镜像 docker pull nginx 3.下载完成后终端查看 # 3.下载完成后终 ...
- Docker系列(11)- 部署Nginx
step-1 搜索镜像 使用search命令,建议去dockerhub上搜索,可以看到帮助文档 [root@localhost ~]# docker search nginx NAME DESCRIP ...
- 通过 Azure Pipelines 实现持续集成之docker容器化及自动化部署
通过 Azure Pipelines 实现持续集成之docker容器化及自动化部署 Intro Azure DevOps Pipeline 现在对于公开的项目完全免费,这对于开源项目来讲无疑是个巨大的 ...
随机推荐
- 【Maven学习】Eclipse使用maven问题集
环境 jdk 1.8 eclipse 4.7 apache-maven-3.6.1 一.eclipse 编译maven工程步骤 1.Update Project 2.maven clean 3.mav ...
- C#中各种Lock的速度比较
简单写了个小程序,比较了一下C#中各种Lock的速度(前提是都没有进入wait状态). 各进入离开Lock 1kw次,结果如下: Lock Time (ms) No lock 58 CriticalS ...
- 安卓 App 性能专项测试之流畅度深度解析-上篇
指标背景 流畅度,顾名思义是用户感知使用App页面时的流畅情况,"App卡不卡",这是用户最直接的感受. 但是要用量化之后的数据衡量流畅度,在Android平台这边并没有直接有效的 ...
- 如何利用Docker构建基于DevOps的全自动CI
来自用户的DevOps实践分享,分享从开发代码到生产环境部署的一条龙操作的实践及经验, 包含工具技术的选型及考量.私有代码库与私有镜像库的应用等. (一)容器服务的Rancher选型 1.为什么说是下 ...
- 在 Java 中不使用多余变量交换两个字符串
在 Java 中不使用多余变量交换两个字符串 public class Test { public static void main(String[] args) { String a = " ...
- c++11多线程记录5: Unique Lock和延时初始化
https://www.youtube.com/user/BoQianTheProgrammer 视频网址 Unique Lock unique_lock和lock_guard类似,都是mutex的w ...
- Django框架之第八篇(模型层补充)--数据库的查询与优化:only/defer,select_related与prefetch_related,事务
在设置外键字段时需要注意: 当你使用django2.x的版本时候,在建立外键关系时,需要你手动添加几个关键点参数 models.cascade #设置级联删除 db_constraints 数据库查询 ...
- 【题解】Luogu P5341 [TJOI2019]甲苯先生和大中锋的字符串
原题传送门 实际按照题意模拟就行 我们先求出字符串的sa 因为要在字符串中出现k次,所以我们枚举\(l,r(r-l+1=k)\)看一共有多少种合法的方案 合法方案的长度下界\(lb\)为\(Max(h ...
- [cf 585 E] Marbles
(一道Div2E不会,我太难了) 题意: 给你一个长度为$n$的颜色序列$A$,每次操作可以选择两个相邻元素交换,求把序列交换成“相同颜色挨在一起”所需的最少操作数. 按颜色排序:设颜色$col$在序 ...
- 将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本)
原文:将 C++/WinRT 中的线程切换体验带到 C# 中来(WPF 版本) 如果你要在 WPF 程序中使用线程池完成一个特殊的任务,那么使用 .NET 的 API Task.Run 并传入一个 L ...