• docker的安装与基本使用


    安装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
    

      

    ---------------------------------------------------------
    学如不及,犹恐失之
  • 相关阅读:
    C# 操作Word目录——生成、删除目录
    Java PDF页面设置——页面大小、页边距、纸张方向、页面旋转
    【BZOJ3157/3516】国王奇遇记(数论)
    【BZOJ2137】submultiple(数论)
    【CF734F】Anton and School(构造)
    【CF618F】Double Knapsack(构造)
    【BZOJ2034】最大收益(贪心)
    【CF981D】Bookshelves(贪心,动态规划)
    【CF865D】Buy Low Sell High(贪心)
    【BZOJ3716】[PA2014]Muzeum(贪心,网络流)
  • 原文地址:https://www.cnblogs.com/noKing/p/8975353.html
Copyright © 2020-2023  润新知