• 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 8888:8888 {--name test1} [Name]{:3.2} {--requirepass "123456"} {-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=60}

    -t:关闭容器的时限,超时未关闭直接kill,默认10s,这个时间就是保存容器状态的时间;

    12、查看镜像详情:

    docker inspect [Name]

    三、运行 Redis、Nginx 实例

    1、redis 

    比较简单,先拉取镜像,运行镜像实例。

    docker pull redis
    docker run -d -p 6379:6379 --name redis01 redis

    默认拉取最新的版本镜像,运行实例以后台进程方式,名称为 redis01

    2、nginx

    a、先拉取镜像

    docker pull nginx

    b、在本地的放置 nginx 文件的文件夹下建立:conf、logs、www三个文件夹,从容器实例拷贝配置文件到本地(没有实例的话可以先运行一个一般实例,从这个拷贝)

    docker cp nginx01:/etc/nginx/nginx.conf D:Docker
    ginxconf

    c、运行实例

     docker run -d -p 8086:80 --name nginx01 -v D:Docker
    ginxwww:/usr/share/nginx/html -v D:Docker
    ginxconf/nginx.c
    onf:/etc/nginx/nginx.conf -v D:Docker
    ginxlogs:/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

    别的如阿里云,需要注册后才可以用。

  • 相关阅读:
    c++ socket发送数据时,sendData = char * string 导致的乱码问题
    c++ sprintf() 用法
    c++ 将float 类型转换成string 类型
    c++中 string类型 转为 char []类型
    c++ 去掉所有空格及换行符
    c++处理字符串string.find()与string::npos
    C1010 unexpected end of file while looking for precompiled header. Did you forget to add '#include "stdafx.h"' to your source
    C++ socket bind() 函数绑定错误
    windows 全局安装 composer
    VMware Tools (ubuntu系统)安装详细过程与使用
  • 原文地址:https://www.cnblogs.com/zhurong/p/11193376.html
Copyright © 2020-2023  润新知