美文网首页
Docker学习

Docker学习

作者: AI科技智库 | 来源:发表于2020-03-04 10:07 被阅读0次

    1 Docker指令

    • docker info 查看docker信息
    • docker run 创建一个docker容器
    • docker ps 查看正在运行的docker容器
    • docker ps -a 查看正在运行和停止的docker容器
    • docker run 通过镜像创建并启动一个容器
    • docker run -p 127.0.0.1:80:80 nginx 将本机127.0.0.1:80映射到容器的80端口
    • docker start 启动容器
    • docker exec -it webserver bash 以交互终端方式进入容器
    • docker diff webserver 查看容器的改动
    • docker attach 重新附着到容器的回话上
    • docker logs 获取容器的日志
    • docker top 查看容器内的进程
    • docker stop 停止某个容器
    • docker rm 删除某个容器
    • docker rm `docker ps -a -q` 删除所有的容器
    • docker images 列出镜像
    • docker pull ubuntu:12.04 拉取镜像(REPOSITORY:TAG)
    • docker search 查找所有Docker Hub上公共的可用镜像
    • docker rmi 删除镜像
    • docker image prune 清楚虚悬镜像
    • docker export 7691a814370e > ubuntu.tar 导出镜像
    • cat ubuntu.tar | docker import - test/ubuntu:v1.0 导入镜像
    • docker inspect CONTAINE_ID | grep IPAddress 查询容器的IP地址
    • docker save spring-boot-docker -o spring-boot-docker.tar 保存镜像
    • docker load -i spring-boot-docker.tar 加载镜像
    • docker export ID >xxx.tar 保存容器
    • docker import xxx.tar containr:v1 加载容器

    2 dockerfile debain和pip替换国内镜像源

    2.1 debain使用国内镜像源

    dockerfile中添加

    COPY sources.list /etc/apt/
    

    dockerfile目录中创建sources.list,并添加

    deb http://mirrors.ustc.edu.cn/debian/ stretch main non-free contrib
    deb http://mirrors.ustc.edu.cn/debian/ stretch-updates main non-free contrib
    deb http://mirrors.ustc.edu.cn/debian/ stretch-backports main non-free contrib
    deb-src http://mirrors.ustc.edu.cn/debian/ stretch main non-free contrib
    deb-src http://mirrors.ustc.edu.cn/debian/ stretch-updates main non-free contrib
    deb-src http://mirrors.ustc.edu.cn/debian/ stretch-backports main non-free contrib
    deb http://mirrors.ustc.edu.cn/debian-security/ stretch/updates main non-free contrib
    deb-src http://mirrors.ustc.edu.cn/debian-security/ stretch/updates main non-free contrib
    

    2.2 pip添加国内镜像源

    dockerfile中添加

    COPY pip.conf /etc/pip.conf
    

    dockerfile目录中创建pip.conf,并添加

    [global]
    index-url = https://pypi.tuna.tsinghua.edu.cn/simple 
    

    2.3 npm添加国内镜像源

    dockerfile中添加

    RUN npm config set registry https://registry.npm.taobao.org
    RUN npm install
    

    3 dockerfile指令

    FROM

    Docker基础镜像的来源,尽可能使用当前官方仓库作为你构建镜像的基础

    RUN

    RUN 指令最常见的用法是安装包用的 apt-get,apt-get update 和 apt-get install 被放在一个 RUN 指令中执行,这样能够保证每次安装的是最新的包。如果 apt-get install 在单独的 RUN 中执行,则会使用 apt-get update 创建的镜像层,而这一层可能是很久以前缓存的。

    RUN apt-get update && apt-get install -y \
                            package-bar \
                            package-baz \
                            package-foo
    

    CMD

    CMD 指令用于执行目标镜像中包含的软件

    CMD ["executable", "param1", "param2"...]
    

    EXPOSE

    EXPOSE 指令用于指定容器将要监听的端口

    EXPOSE 80
    

    ENV

    可以使用 ENV 来为容器中安装的程序更新 PATH 环境变量

    ENV PATH /usr/local/nginx/bin:$PATH
    

    ADD 和 COPY

    虽然 ADD 和 COPY 功能类似,但一般优先使用 COPY 。因为它比 ADD 更透
    明。 COPY 只支持简单将本地文件拷贝到容器中,而 ADD 有一些并不明显的功
    能(比如本地 tar 提取和远程 URL 支持)。因此, ADD 的最佳用例是将本地 tar
    文件自动提取到镜像中,例如

    ADD rootfs.tar.xz 
    COPY requirements.txt /tmp/
    

    ENTRYPOINT

    ENTRYPOINT 的最佳用处是设置镜像的主命令

    WORKDIR

    WORKDIR指令用于指定容器的一个目录, 容器启动时执行的命令会在该目录下执行

    WORKDIR /mydir
    CMD ["more" ,"test.txt"]
    

    4 docker compose分配资源

    redis服务被限制为使用不超过50M的内存和0.50(不超过单个内核的50%)可用处理时间(CPU),并且具有保留20M的内存和0.25CPU时间(始终可用)。

    version: "3.7"
    services:
      redis:
        image: redis:alpine
        deploy:
          resources:
            # 设置容器的资源限制
            limits:
              cpus: '0.50'
              memory: 50M
            #设置为容器预留的系统资源(随时可用)
            reservations:
              cpus: '0.25'
              memory: 20M
    

    相关文章

      网友评论

          本文标题:Docker学习

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