• Docker的基本使用


    Docker在Linux中的安装

    一、rpm离线安装docker17.12

    1.下载docker安装包

    https://download.docker.com/linux/centos/7/x86_64/stable/Packages/下载docker-ce-17.12.0.ce-1.el7.centos.x86_64.rpm

    2.下载9个依赖

    http://mirrors.163.com/centos/7/os/x86_64/Packages/下载8个依赖
    audit-libs-python-2.7.6-3.el7.x86_64.rpm
    checkpolicy-2.5-4.el7.x86_64.rpm
    libcgroup-0.41-13.el7.x86_64.rpm
    libseccomp-2.3.1-3.el7.x86_64.rpm
    libsemanage-python-2.5-8.el7.x86_64.rpm
    policycoreutils-python-2.5-17.1.el7.x86_64.rpm
    python-IPy-0.75-6.el7.noarch.rpm
    setools-libs-3.3.8-1.1.el7.x86_64.rpm

    http://rpm.pbone.net/index.php3?stat=3&limit=1&srodzaj=1&dl=40&search=container-selinux&field[]=1&field[]=2下载container-selinux-2.9-4.el7.noarch.rpm

    rpm -ivh /root/docker/*.rpm –nodeps –force

    curl -sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-engine/internet | sh -

    启动Docker引擎

    sudo systemctl enable docker
    sudo systemctl start docker

    建立docker用户组

    sudo groupadd docker

    将用户加入docker组

    sudo usermod -aG docker $USER

    这里使用阿里云的容器镜像服务,目前公测,免费的。
    1) 去阿里云官网,登录控制台,在产品与服务里面找到容器镜像服务
    2)点击开通
    3) 点击镜像加速器,变有了加速地址(不用镜像加速器的话,镜像都是国外的,因为墙,所有下载是龟速)

    镜像加速器

    vi /etc/systemd/system/multi-user.target.wants/docker.service
    ExecStart=/usr/bin/dockerd –registry-mirror=https://….mi
    rror.aliyuncs.com

    sudo systemctl daemon-reload
    sudo systemctl restart docker

    检查加速器是否生效

    sudo ps -ef | grep dockerd
    root 5346 1 0 19:03 ? 00:00:00 /usr/bin/dockerd
    –registry-mirror=https://*****.mirror.aliyuncs.com

    docker -v

    systemctl start docker

    验证 docker 是否安装成功并在容器中执行一个测试的镜像
    docker run ubuntu echo hello docker

    docker run nginx

    docker run -p 8080:80 -d nginx
    http://192.168.116.104:8080/

    [root@test3 share]# docker cp index.html
    [root@test3 share]# docker commit -m ‘fun’ d0e976512485 nginx-fun

    删除镜像

    docker rmi IMAGE ID

    查看镜像

    docker images
    docker ps -a

    小结

    命令 用途
    docker pull 获取image
    docker build 创建image
    docker images 列出image
    docker run 运行container
    docker ps 列出container
    docker rm 删除container
    docker rmi 删除image
    docker cp 在host 和container之间拷贝文件
    docker commit 保存改动为新的image

    Dockerfile语法

    FROM alpine:latest
    MAINTAINER hsiehchou
    CMD echo ‘hello docker’

    touch Dockerfile

    ++++++++++++++++++++++++++++++++++++++++
    FROM ubuntu
    MAINTAINER hsiehchou
    RUN sed -i ‘s/archive.ubuntu.com/mirros.ustc.edu.cn/g’ /etc/apt/sources.list
    RUN apt-get update
    RUN apt-get install -y nginx
    COPY index.html /var/www/html
    ENTRYPOINT [“/usr/sbin/nginx”, “-g”, “daemon off;”]前台运行
    EXPOSE 80

    docker build -t hsiehchou/hello-nginx .

    docker run -d -p 80:80 hsiehchou/hello-nginx

    小结

    命令 用途
    FROM base image
    RUN 执行命令
    ADD 添加文件
    COPY 拷贝文件
    CMD 执行命令
    EXPOSE 暴露端口
    WORKDIR 指定路径
    MIANTAINER 维护者
    ENV 设定环境变量
    ENVRYPOINT 容器入口
    USER 指定用户
    VOLUME mount point

    镜像分层

    Dockerfile中的每一行都产生一个新层

    Volume

    提供独立于容器之外的持久化存储

    docker run -d –name nginx -v /usr/share/nginx/html nginx

    docker exec -it nginx /bin/bash

    docker run -v $PWD/html:/usr/share/nginx/html nginx

    ++++++++++++++++++++++++++++
    docker create -v $PWD/data:/var /mydata –name data_container ubuntu

    docker run -it –volumes-from data_container ubuntu /bin/bash
    mount

    Registry

    镜像仓库

    术语

    English 中文
    host 宿主机
    image 镜像
    container 容器
    registry 仓库
    daemon 守护程序
    client 客户端

    docker search whalesay
    docker pull docker/whalesay
    docker push myname/whalesay

    国内的一些仓库
    daocloud
    时速云
    aliyun

    [root@test3 dockerfiler2]# docker run docker/whalesay cowsay Docker你好!

    docker tag docker/whalesay hch/whalesay

    curl -L https://github.com/docker/compose/releases/download/1.9.0/docker-compose-(uname -m) > /usr/local/bin/docker-compose

    docker-compose.yml常用命令

    命令 用途
    build 本地创建镜像
    command 覆盖缺省命令
    depends_on 连接容器
    ports 暴露端口
    volumes
    image pull镜像

    docker-compose命令

    命令 用途
    up 启动服务
    stop 停止服务
    rm 删除服务中的各个容器
    logs 观察各个容器的日志
    ps 列出服务相关的容器

    docker基本命令

    docker ps :查看正在运行的容器
    docker images:查看现有的镜像
    docker logs: 查看某个容器的日志
    docker run: 运行某个容器
    docker inspect:查看某个容器
    docker exec:进入某个容器
    docker start/stop:启动或者停止某个容器

    [root@test3 hadoop-docker]# touch Dockerfile
    [root@test3 hadoop-docker]# ll
    total 0
    -rw-r–r– 1 root root 0 Feb 27 19:18 Dockerfile
    [root@test3 hadoop-docker]# vim Dockerfile

    FROM ubuntu:14.04
    MAINTAINER hsiehchou
    WORKDIR /root
    # install openssh-server, openjdk and wget
    RUN apt-get update && apt-get install -y openssh-server openjdk-7-jdk wget
    # install hadoop 2.7.2
    RUN wget https://github.com/kiwenlau/compile-hadoop/release/download/2.7.2/hadoop-2.7.2.tar.gz &&
    tar -zxvf hadoop-2.7.2.tar.gz &&
    mv hadoop-2.7.2 /usr/local/hadoop &&
    rm hadoop-2.7.2.tar.gz
    # set environment variable
    ENV JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd-64
    ENV HADOOP_HOME=/usr/local/hadoop
    ENV PATH=$PATH:/usr/local/hadoop/bin:/usr/local/hadoop/sbin
    # ssh without key
    RUN ssh-keygen -t rsa -f ~/.ssh/id_rsa -p '' &&
    cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
    RUN mkdir -p ~/hdfs/namenode &&
    mkdir -p ~/hdfs/datanode &&
    mkdir $HADOOP_HOME/logs
    COPY config/* /tmp/
    RUN mv /tmp/ssh_config ~/.ssh/config &&
    mv /tmp/hadoop-env.sh /usr/local/hadoop/etc/hadoop/hadoop-env.sh &&
    mv /tmp/hdfs-site.xml $HADOOP_HOME/etc/hadoop/hdfs-site.xml &&
    mv /tmp/core-site.xml $HADOOP_HOME/etc/hadoop/core-site.xml &&
    mv /tmp/mapred-site.xml $HADOOP_HOME/etc/hadoop/mapred-site.xml &&
    mv /tmp/yarn-site.xml $HADOOP_HOME/etc/hadoop/yarn-site.xml &&
    mv /tmp/slaves $HADOOP_HOME/etc/hadoop/slaves &&
    mv /tmp/start-hadoop.sh ~/start-hadoop.ssh &&
    mv /tmp/run-wordcount.sh ~/run-wordcount.sh
    RUN chmod +x ~/start-hadoop.sh &&
    chmod +x ~/run-wordcount.sh &&
    chmod +x $HADOOP_HOME/sbin/start-dfs.sh &&
    chmod +x $HADOOP_HOME/sbin/start-yarn.sh
    # format namenode
    RUN /usr/local/hadoop/bin/hdfs namenode -format
    CMD ["sh", "-c", "service ssh start: bash"]
  • 相关阅读:
    骆驼命名法,帕斯卡命名法和匈牙利命名法<转>
    海量数据库查询优化<转>
    备份数据库并生成Rar
    标准http状态码[英文注释版本]<转>
    IIS自动停止,iis自动关闭。应用程序池假死、自动重启以及iis权限等解决办法 <转>
    Flex/Silverlight的技术比较<转>
    .NET平台测试驱动开发模拟框架Moq简明教程(实例剖析)<转>
    VisualStudio用IE8调试时遇到的问题(转)
    English learning
    JS调用WebService示例
  • 原文地址:https://www.cnblogs.com/hsiehchou/p/10479047.html
Copyright © 2020-2023  润新知