docker使用记录

安装

mac端直接官网地址下载nginx

经常使用命令

如何进入、退出docker的container

运行系统终端

docker run -t -i ubuntu /bin/bashredis

  • docker run:启动containerdocker

  • ubuntu:你想要启动的imageshell

  • -t:进入终端json

  • -i:得到一个交互式的链接,经过获取container的输入ubuntu

  • /bin/bash:在container中启动一个bash shellbash

退出终端

exitapp

启动某个容器(已中止)

docker start somecontainerui

进入某个容器(运行中)

exit时container亦退出

docker attach somecontainerspa

exit时container不退出

docker exec -it somecontainer /bin/bash

保存镜像、 容器到本地, 从本地加载镜像、 容器

镜像的导出及导入

docker save imageID > filename  
docker load < filename  
复制代码

容器的保存及导入(导入的是镜像)

docker export containID > filename  
docker import filename [newimage]  
复制代码

Dockerfile 的使用

解决Docker build时 Sending build context to Docker daemon 过大的问题

Docker Client会默认发送Dockerfile同级目录下的全部文件到Dockerdaemon中

解决:一个文件夹中只有dockerfile及相关的文件

相关指令

每一次RUN就是一层,因此不要每一条命令都RUN,而是将相关的命令写在一个RUN中。

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
复制代码

构建是将上下文目录中的文件拷入镜像中

COPY ./package.json /app/
复制代码

暴露端口

EXPOSE 8080
复制代码

相似开机启动

CMD
复制代码

开始构建,注意最后的点

docker build -t nginx:v3 .
复制代码

最重要的事情

能在网上找的镜像,千万别本身构建,坑太多,耽误时间!

相关文章
相关标签/搜索