美文网首页
Docker之初级实战篇(一)--安装Docker

Docker之初级实战篇(一)--安装Docker

作者: 布拉德澈 | 来源:发表于2018-09-19 14:02 被阅读0次

    一、动手前的准备

    1、我们的实战环境Centos7,内存建议4G或以上。
    2、请自行完成Linux等环境的配置(如虚拟机等)。
    3、能顺畅使用百度或百度以外搜索引擎。
    4、我们不再赘述Docker是什么,直接进入主题。
    5、学习和使用Docker,首先要学会查询官方文档:
    https://docs.docker.com/
    6、我们选择CE社区版,CE和EE的区别请自行查询。
    https://docs.docker.com/engine/installation/linux/docker-ce/centos

    安装一些基本依赖软件

    进入终端操作,默认是普通用户 ,不要随意使用root。
    1、输入下方命令:

    sudo yum install -y yum-utils device-mapper-persistent-data lvm2
    

    2、进一步设置即将安装的是稳定版官方仓库(后面可以使参考阿里云帮助使用阿里云仓库):

    yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    

    3、这一步是可选的,我们不加(edge月更新仓库, Edge gives you new features every month)

    yum-config-manager --enable docker-ce-edge
    

    4、阿里云上的安装帮助文档:
    https://yq.aliyun.com/articles/110806?spm=a2c1q.8351553.0.0.11b720beQRyGTx

    二、安装

    1、安装之前可以查看所有仓库中所有docker版本

    yum list docker-ce --showduplicates | sort -r 
    

    2、不想选那么默认安装

    yum install docker-ce -y
    

    3、启动 (并设置开机启动)

     systemctl start docker
     systemctl enable docker
    

    docker安装时默认创建了docker用户组,将普通用户加入docker用户组就可以不使用sudo来操作docker

    sudo usermod -aG docker usename  #这里替换成你自己的用户名
    

    注意:光加入还不行,使用username重新登录
    要么执行newgrp - docker 改变当前用户的有效群组

    4、这里我们使用第一个命令:

    docker images :    # 列出本地镜像。
    

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

    当然,现在我们什么都看不到,因为我们并没有加载任何镜像。

    image

    so,我们需要去安装或则拉区别人的镜像来使用。

    5、内置镜像
    https://hub.docker.com/
    可以直接在这里去搜,然而由于某种特殊原因,你无法下载。
    于是我们要配置国内镜像。我们可以用阿里云的
    https://dev.aliyun.com/search.html
    (其他镜像源 请大家百度搜索)

    (1)、首先你得注册,并登录到阿里云镜像中心
    (2)、来到容器镜像服务,并按提示操作,配置镜像加速器

    image

    回到操作终端,执行以下命令:

    sudo mkdir -p /etc/docker     #创建一个文件夹 叫做docker
    sudo tee /etc/docker/daemon.json <<-'EOF'   #利用tee 命令把下面的配置写入 daemon.json
    {
      "registry-mirrors": ["https://xxxx.mirror.aliyuncs.com"]
        #这里要改成你们自己的 地址
    }
    EOF
    

    然后重载docker
    重载所有修改过的配置文件,扫描新的或有变动的单元

    sudo systemctl daemon-reload 
    sudo systemctl restart docker #重启docker
    

    三、 开始下载一个镜像

    1、回到https://dev.aliyun.com/search.html
    进行搜索 ,譬如输入关键字:PHP PYTHON

    2、我们选取一个下载次数还算多的镜像
    https://dev.aliyun.com/detail.html?repoId=1666
    在操作终端根据提示执行命令:

    docker pull registry.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5
    

    现在需要做的就是等待。。。


    image

    OK,我们干了什么?我们把镜像拉取到本地。

    然后,我们再次执行 docker images

    image

    3、镜像有了,接下来干什么?

    docker  run -d -p 8080:80 name/id
    

    run:把镜像放入容器中(只在第一次运行)
    -d:启动容器后台运行,并返回id
    -p:把容器的80端口映射到宿主机的8080
    这里关于docker run 命令我们先暂时用这么多。后面在再详细深入的了解该命令。

    4、 Docker ps :列出容器

    主要有些参数要说一下
    (1)、 不加参数,表示查看当前正在运行的容器 .
    (2)、-a,查看所有容器包括停止状态的容器 .
    (3)、-l,查看最新创建的容器 .
    (4)、-n=x,查看最后创建的x个容器 .
    (5)、-q :静默模式,只显示容器编号。
    (6)、-s :显示总的文件大小。

    这里列一下docker ps的结果 :
    CONTAINER ID IMAGE COMMAND
    CREATED STATUS PORTS NAMES

    这些分别代表什么 :
    CONTAINER ID:容器ID,唯一标识容器
    IMAGE:创建容器时所用的镜像
    COMMAND:在容器最后运行的命令
    CREATED:容器创建的时间
    STATUS:容器的状态(你会看到UPXXX,表示运行状态)
    PORTS:对外开放的端口号
    NAMES:容器名(也具有唯一性,docker是不允许创建容器名相同的容器的)

    4、简单使用启动、关闭、重启容器

    docker start name/id:启动一个或多少已经被停止的容器

    docker stop name/id:停止一个运行中的容器

    docker restart name/id:重启容器

    启动容器镜像后,用浏览器直接访问我们这个镜像地址

    http://xxx.xxx.xxx.xxx:8080

    因为我们这个测试容器是别人集成好PHP+apachede镜像,所以我们已经能访问到

    image

    Q&A

    如果无法访问,检查防火墙是否放行8080端口:

    iptables -I INPUT -p tcp --dport 8080 -j ACCEPT

    如果出现 IPv4 forwarding is disabled. Networking will not work.

    解决办法:

    sudo vi /etc/sysctl.conf (Linux内核参数配置文件,可在运行时修改某些内核参数,使之永久生效)

    加入net.ipv4.ip_forward=1

    保存并退出后,执行systemctl restart network

    OK,这一章的内容就到这里,我们下一章将更加详细的学习docker实战。

    END

    相关文章

      网友评论

          本文标题:Docker之初级实战篇(一)--安装Docker

          本文链接:https://www.haomeiwen.com/subject/ugkinftx.html