zoukankan      html  css  js  c++  java
  • 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"]
  • 相关阅读:
    Microsoft Visio 2013 简体中文版
    visio2013产品密钥激活
    WebConfigurationManager和ConfigurationManager区别
    错误 the type "xxxx" is defined in an assembly that is not refernced.You must add a reference to assem
    Windows10安装oracle 19c数据库+PLsql详细安装过程
    js 三个input输入框,组合查询。
    Vue.js组件教程 https://www.jb51.net/Special/926.htm
    LeetCode刷题之路
    涉猎---Java多线程
    深信服翔鹰计划线上笔试考察点总结(路由,虚拟架构,IPV4,Tcp/IP......)
  • 原文地址:https://www.cnblogs.com/hsiehchou/p/10479047.html
Copyright © 2011-2022 走看看