• docker安装


    (1)使用脚本自动安装

    curl -fsSL get.docker.com -o get-docker.sh
    sudo sh get-docker.sh --mirror Aliyun

    (2)启动 Docker CE

    sudo systemctl enable docker
    sudo systemctl start docker

    (3)建立 docker 用户组

    建立 docker 组:

    sudo groupadd docker

    将当前用户加入 docker 组:

    sudo usermod -aG docker $USER

    (4)测试 Docker 是否安装正确

    docker run hello-world

    若能正常输出以上信息,则说明安装成功。

     (5)列出镜像列表

    docker image ls

    (6)查看镜像体积

    docker system df

     (7)删除镜像

    docker image rm [选项] <镜像1> [<镜像2> ...]

    (8)使用 Dockerfile 定制镜像

    mkdir mynginx
    cd mynginx
    touch Dockerfile
    vim Dockerfile
    FROM nginx
    RUN echo '<h1>Hello, Docker!</h1>' > /usr/share/nginx/html/index.html
    # FROM 指定基础镜像
    # RUN 执行命令

    Dockerfile的正确写法

    FROM debian:jessie
    
    RUN buildDeps='gcc libc6-dev make' 
        && apt-get update 
        && apt-get install -y $buildDeps 
        && wget -O redis.tar.gz "http://download.redis.io/releases/redis-3.2.5.tar.gz" 
        && mkdir -p /usr/src/redis 
        && tar -xzf redis.tar.gz -C /usr/src/redis --strip-components=1 
        && make -C /usr/src/redis 
        && make -C /usr/src/redis install 
        && rm -rf /var/lib/apt/lists/* 
        && rm redis.tar.gz 
        && rm -r /usr/src/redis 
        && apt-get purge -y --auto-remove $buildDeps

    构建镜像

    docker build -t nginx:v3 .
    # -t nginx:v3 最终镜像的名称
    # . 表示当前目录

     (9)Dockerfile指令详解

    1) COPY 复制文件

    --chown=<user>:<group> 选项来改变文件的所属用户及所属组。

    COPY --chown=55:mygroup files* /mydir/
    COPY --chown=bin files* /mydir/
    COPY --chown=1 files* /mydir/
    COPY --chown=10:11 files* /mydir/

    2) ADD 更高级的复制文件

    ADD --chown=55:mygroup files* /mydir/
    ADD --chown=bin files* /mydir/
    ADD --chown=1 files* /mydir/
    ADD --chown=10:11 files* /mydir/

    copy指令和add指令的选用原则:所有的文件复制均使用 COPY 指令,仅在需要自动解压缩的场合使用 ADD

    4)ENTRYPOINT 入口点

    5)ENV 设置环境变量

    ENV VERSION=1.0 DEBUG=on 
        NAME="Happy Feet"

    先定义了环境变量 NODE_VERSION,其后的 RUN 这层里,多次使用 $NODE_VERSION 来进行操作定制。

    ENV NODE_VERSION 7.2.0
    
    RUN curl -SLO "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-x64.tar.xz" 
      && curl -SLO "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" 
      && gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc 
      && grep " node-v$NODE_VERSION-linux-x64.tar.xz$" SHASUMS256.txt | sha256sum -c - 
      && tar -xJf "node-v$NODE_VERSION-linux-x64.tar.xz" -C /usr/local --strip-components=1 
      && rm "node-v$NODE_VERSION-linux-x64.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt 
      && ln -s /usr/local/bin/node /usr/local/bin/nodejs

    6)WORKDIR 指定工作目录

    7)USER 指定当前用户

    RUN groupadd -r redis && useradd -r -g redis redis
    USER redis
    RUN [ "redis-server" ]

     10)操作容器

    # 启动容器-- 新建并启动
    docker run ubuntu:14.04 /bin/echo 'Hello world'

    # 启动已终止容器
    docker container start
    # 后台运行
    docker run ubuntu:17.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"

    容器会把输出的结果 (STDOUT) 打印到宿主机上面

    docker run -d ubuntu:17.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"

    此时容器会在后台运行并不会把输出的结果 (STDOUT) 打印到宿主机上面(输出结果可以用 docker logs 查看)。

    # 终止容器

    参考手册:https://yeasy.gitbooks.io/docker_practice/content/install/centos.html

  • 相关阅读:
    基于Hadoop的数据仓库Hive
    hadoop课堂测试之数据清洗
    实验6:Mapreduce实例——WordCount
    暑期--第五周
    暑期--第四周
    暑期--第三周
    暑期--第二周
    软件工程——个人课程总结
    周计划03(20201005-20201011)
    周计划02(20200928-20201004)
  • 原文地址:https://www.cnblogs.com/zouke1220/p/9881964.html
Copyright © 2020-2023  润新知