安装docker

curl -s https://get.docker.com|sh

好慢....一个小时吧...

启动docker

先执行命令docker version来来一下:

docker version

发现没有启动docker server, 执行命令:

service docker start

然后再查看一下 docker version

docker pull命令

pull命令用于拉取镜像

可以使用docker pull --help命令来查看帮助

红色划线部分就已经标明了命令的使用格式

-a :拉取所有 tagged 镜像
--disable-content-trust :忽略镜像的校验,默认开启

docker images命令

可以查看本地的镜像

同理也可以使用 docker images --help 来查看具体的使用帮助

-a         :列出本地所有的镜像(含中间映像层,默认情况下,过滤掉中间映像层)
--digests :显示镜像的摘要信息
-f :显示满足条件的镜像
--format :指定返回值的模板文件
--no-trunc :显示完整的镜像信息
-q :只显示镜像ID

docker run 命令

-a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项
-d: 后台运行容器,并返回容器ID
-i: 以交互模式运行容器,通常与 -t 同时使用
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用
--name="nginx-lb": 为容器指定一个名称
--dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致
--dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致
-h "mars": 指定容器的hostname
-e username="ritchie": 设置环境变量
--env-file=[]: 从指定文件读入环境变量
--cpuset="0-2" or --cpuset="0,1,2": 绑定容器到指定CPU运行
-m :设置容器使用内存最大值
--net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型
--link=[]: 添加链接到另一个容器
--expose=[]: 开放一个端口或一组端口

docker hello world

接下来将演示使用docker来跑一个hello world.

docker pull hello-world

如果pull的时候没有指定版本, 就会拉取最新版本

接下来使用docker images命令来查看下载的镜像

使用run语句来运行刚刚的hello-world镜像

docker run hello-world

docker安装Nginx

docker官方仓库中Nginx的页面: https://hub.docker.com/r/library/nginx/tags/

docker pull nginx:1.12.2

下载一会儿......完成后,再使用docker images命令查看一下:

使用run -d命令让nginx在后台运行(这样才不会导致终端窗口关闭后nginx也会跟着停止运行)

-p 7788:80 的意思是, run时将docker容器中的80端口映射到主机的7788端口

docker run -d -p 7788:80 nginx:1.12.2

使用docker ps命令来查看当前运行的docker 实例:

docker ps

其中容器的ID 是edb334b917cc, 这个id之后会用到

大家可以把docker想成一个新装好的虚拟机. 但是如何进入这个实例来进行操作呢?

docker exec -it <id> bash

其中 docker exec是指令, -it是参数, id是docker实例的id, bash是对这个实例进行的操作, 因为这里想打开这个实例的bash来进行系统操作之类的.

这样就进入到了这个Nginx实例的bash下, 可以进行一系列的shell命令.其实就类似在操作一台新虚拟机.

大家会注意到我输入 docker exec命令时, 并没有把docker id 写全. 因为只需要根据id来唯一确定docker实例就可以了, 没必要写全.

只是介绍一下exec这个命令, 目前还用不到, 如果已经进来了, 那就exit退出Nginx实例的bash终端.

在主机中执行 netstat -na | grep 7788 来查看刚才启动Nginx时绑定的7788端口是否起作用了.

可以看到7788端口正在监听.

接下来在主机上打开浏览器, 输入自己主机的ip+端口,来验证一下, 看到Nginx就说明成功了:

docker安装Redis

pull的时候不指定版本的话, 默认下载的是最新版

docker pull redis

创建一个data目录, 用于存放之后的持久化文件

mkdir -p /redis/data

运行实例:

docker run -p 6379:6379 -v /redis/data:/data  -d redis:latest redis-server --appendonly yes

命令说明:

-p 6379:6379 : 将容器的6379端口映射到主机的6379端口
-v /redis/data:/data : 将主机中/redis/data/挂载到容器的/data
redis-server --appendonly yes : 在容器执行redis-server启动命令,并打开redis持久化配置

在redis docker实例中打开redis客户端:

首先docker ps查看id, 其中redis实例的id是 4c4109ab9a59

使用exec来执行docker实例内部命令, 4c41是redis实例的docker id 的前几位, 只要能在当前机器中唯一识别就好, 不一定要把id写全.

docker exec -it 4c41 redis-cli

redis就可以正常使用了.

运行Redis时需要指定配置的话, 按如下运行:

docker run -p 6379:6379 -v /redis/data:/data -v /redis/redis.conf:/redis/r.conf  -d redis:latest redis-server /redis/r.conf

  

docker的安装与基本使用的更多相关文章

  1. docker——容器安装tomcat

    写在前面: 继续docker的学习,学习了docker的基本常用命令之后,我在docker上安装jdk,tomcat两个基本的java web工具,这里对操作流程记录一下. 软件准备: 1.jdk-7 ...

  2. docker 启动安装等命令

    确认是否安装url whereis curl 启动docker服务: sudo service docker start sudo service docker stop 安装curl sudo ap ...

  3. DOCKER windows安装

    DOCKER windows安装 1.下载程序包 2. 设置环境变量 3. 启动DOCKERT 4. 分析start.sh 5. 利用SSH工具管理 6. 下载镜像 6.1 下载地址 6.2 用FTP ...

  4. 在docker里面安装部署应用

    最近一直在做docker的安装打包工作,学到不少东西,在博客里记一下. 环境centos6 ,docker 基础镜象centos6 1.创建本地基础镜象,安装基础命令包 (1)Dockerfile,D ...

  5. Docker Centos安装Redis以及问题处理

    之前一篇文章 Redis安装及主从配置 介绍了redis的安装配置,另一篇文件介绍了 Docker Centos安装Openssh .今天将两篇文件结合一下——在Docker Centos环境下搭建r ...

  6. Docker Centos安装Mysql5.6

    之前一篇随笔<Docker Centos安装Openssh> 写的是如何在基础的centos镜像中搭建ssh服务,在此基础上再搭建其他服务.本文继续介绍在centos_ssh基础上搭建my ...

  7. Docker的安装及简单使用

    1.  Docker的安装 (这里的“安装docker”其实就是安装Docker Engine) $ sudo apt-get intasll docker.io note: apt-get是ubun ...

  8. docker 的安装

    官方站点上有各种环境下的 安装指南,这里主要介绍下Ubuntu和CentOS系列的安装. Ubuntu 系列安装 Docker 通过系统自带包安装 Ubuntu 14.04 版本号系统中已经自带了 D ...

  9. docker 17 安装

    docker17 安装 新增一键安装命令: curl -sSL https://get.docker.com/ | sh 以下为手动安装过程 翻译自 Get Docker for Ubuntu Doc ...

  10. centos7安装docker并安装jdk和tomcat(常用命令)

    阿里专属的镜像加速 在宿主机器编辑文件:vi /etc/docker/daemon.json 阿里专属的镜像加速地址,类似于"https://91cntlkt.mirror.aliyuncs ...

随机推荐

  1. 设置TextBlock默认样式后,其他控件的Text相关属性设置失效问题

    问题: 定义了默认TextBlock样式后,再次自定义下拉框 or 其他控件 ,当内部含有TextBlock时,设置控件的字体相关样式无效,系统始终使用TextBlock设置默认样式 解决方案: 为相 ...

  2. 算法"新"名词

    这个“新”是对于自己而言. 最近几天接触到很多新的名词,如: 回溯法(backtracking):以前知道,但很少用 动态规划(dynamic programming):序列型.矩阵型.区间型.背包等 ...

  3. dotnetcore ueditor

    dotnetcore ueditor  https://github.com/durow/ueditornetcore http://www.cnblogs.com/durow/p/6116393.h ...

  4. Linux:Day12(下) 进程、任务计划

    vmstat命令: vmstat [options] [delay [ count]] procs: r:等待运行的进程的个数: b:处于不可中断睡眠态的进程个数:(被阻塞的队列的长度): memor ...

  5. OSGI插件(plugin)web工程建设步骤

     所有资源下载(汇总) 底包的下载地址:https://pan.baidu.com/s/15JxHOHf0AyZaLKPJUkpeXA 提取码: bujz web-target.war下载地址: ht ...

  6. Django中间件2

    前戏 我们在前面的课程中已经学会了给视图函数加装饰器来判断是用户是否登录,把没有登录的用户请求跳转到登录页面.我们通过给几个特定视图函数加装饰器实现了这个需求.但是以后添加的视图函数可能也需要加上装饰 ...

  7. 软工+C(2): 分数和checklist

    // 上一篇:题目设计.点评和评分 // 下一篇:超链接 教学里,建立清晰明确的评分规则并且一开始就公布,对于教师.助教.学生都是重要的. 公布时机 在课程开始的时候,就需要确定并公布评分机制,随着课 ...

  8. 爬虫系列之mongodb

    mongo简介 MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案. MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非 ...

  9. Flask上下文管理、session原理和全局g对象

    一.一些python的知识 1.偏函数 def add(x, y, z): print(x + y + z) # 原本的写法:x,y,z可以传任意数字 add(1,2,3) # 如果我要实现一个功能, ...

  10. BZOJ3028食物——生成函数+泰勒展开

    题目描述 明明这次又要出去旅游了,和上次不同的是,他这次要去宇宙探险!我们暂且不讨论他有多么NC,他又幻想了他应 该带一些什么东西.理所当然的,你当然要帮他计算携带N件物品的方案数.他这次又准备带一些 ...