安装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. windows搭建golang环境

    由于墙的存在,很多网址无法下载,推荐https://studygolang.com/dl去下载. windows需要配置几个环境变量,我是下载的压缩文件,所以需要自己配置,通过安装程序安装的应该不需要 ...

  2. python3 dict(字典)

    clear(清空字典内容) stu = { 'num1':'Tom', 'num2':'Lucy', 'num3':'Sam', } print(stu.clear()) #输出:None copy( ...

  3. Nginx反向代理实现IP访问分流

    通过Nginx做反向代理来实现分流,以减轻服务器的负载和压力是比较常见的一种服务器部署架构.本文将分享一个如何根据来路IP来进行分流的方法. 根据特定IP来实现分流 将IP地址的最后一段最后一位为0或 ...

  4. c++中 . 和 -> 的区别是什么?

    主要用于访问类的成员,->主要用于类类型的指针访问类的成员,而.运算符,主要用于类类型的对象访问类的成员. 例如: class A { public :int a } A ma; A *p=&a ...

  5. 数据库【mysql篇】典型的一些练习题目

    班级表 class 学生表student 老师表 teacher 课程表course 成绩表 score 准备数据 创建数据库 create database tang_test charset='u ...

  6. Vmware10中Centos7挂载Windows主机的共享文件夹,提示:Error: cannot mount filesystem: No such device

    1.设置共享权限 2.安装VMware tools 点击虚拟机 点击安装 VMware tools 将/run/media/zhaojq/VMware\ Tools 目录下的VMwareTools-9 ...

  7. 初学Kafka工作原理流程介绍

    Apache kafka 工作原理介绍 消息队列技术是分布式应用间交换信息的一种技术.消息队列可驻留在内存或磁盘上, 队列存储消息直到它们被应用程序读走.通过消息队列,应用程序可独立地执行--它们不需 ...

  8. c++面经积累<2>

    4.类成员初始化方式:列表初始化和赋值初始化 赋值初始化通过在函数体内进行赋值,列表初始化,在构造函数后面加上冒号,使用初始化列表进行初始化.在函数体内进行初始化,是在所有的数据成员被分配内存空间后进 ...

  9. 【接口时序】6、IIC总线的原理与Verilog实现

    一. 软件平台与硬件平台 软件平台: 1.操作系统:Windows-8.1 2.开发套件:ISE14.7 3.仿真工具:ModelSim-10.4-SE .ChipScope 硬件平台: 1. FPG ...

  10. c++ fmt 库安装和使用示例

    安装: 1 git clone  https://github.com/fmtlib/fmt.git 2. cmake . 3. make && make install  #incl ...