docker镜像基本知识

本文详细介绍了Docker的基础知识,包括如何拉取镜像、运行容器、查看和删除镜像。重点讲解了Dockerfile的使用,通过示例展示了如何定制Docker镜像,包括FROM指定基础镜像、RUN执行命令、COPY和ADD复制文件、CMD和ENTRYPOINT定义启动命令、ENV设置环境变量、WORKDIR指定工作目录等关键指令。
摘要由CSDN通过智能技术生成

镜像拉取

# 命令格式
docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签]

# 镜像拉取
 docker pull ubuntu:16.04
 
 # 运行
 docker run -it --rm ubuntu:16.04 /bin/bash
docker run 命令参数说明
  • -it:这是两个参数,一个是 -i :交互式操作,一个是 -t 终端。我们这里打算进入 bash 执行一些命令并查看返回结果,因此我们需要交互式终端。
  • bash :放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 bash 。

镜像列表

# 列出下载的镜像
docker image ls

# 查看镜像、容器、数据卷占用空间
docker system df

# 批量删除无用镜像
docker image prune

删除镜像

# 删除本地镜像
docker image rm <镜像1>
docker image rmi -f <镜像id>

# 删除所有仓库名为 redis 的镜像
docker image rm $(docker image ls -q redis)

使用Dockerfile定制镜像

这里使用django项目的Dockerfile为示例(与manage.py同目录下)

# 从仓库拉取 带有 python 3.7 的 Linux 环境

FROM python:3.7

# 设置 python 环境变量
ENV PYTHONUNBUFFERED 1
ENV APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=DontWarn

COPY pip.conf /root/.pip/pip.conf


# 安装mysql依赖
RUN apt-get update \
    && apt-get install python3-dev default-libmysqlclient-dev -y


# 创建 djangosite 文件夹
RUN mkdir -p /var/www/djangosite

# 将 djangosite 文件夹为工作目录
WORKDIR /var/www/djangosite

# 将当前目录加入到工作目录中(. 表示当前目录)
ADD . /var/www/djangosite

# 更新pip版本
RUN /usr/local/bin/python -m pip install --upgrade pip

# 利用 pip 安装依赖
RUN pip3 install -r requirements.txt \
    && pip3 install uwsgi \
    && pip3 install six
# 将当前目录复制到容器的 djangosite 目录
ADD six.py /usr/local/lib/python3.7/site-packages/django/utils/


# uWSGI可以运行在’emperor’模式。在这种模式下,然后为每个它找到的配置文件生成实例 (‘vassals’)。
# 创建配置文件目录,并创建软链接到配置文件目录
RUN mkdir -p /etc/uwsgi/vassals \
    && ln -s /var/www/djangosite/usite_wsgi.ini /etc/uwsgi/vassals/

# 去除windows系统编辑文件中多余的\r回车空格
RUN sed -i 's/\r//' ./start.sh \
    # 给start.sh可执行权限
    && chmod +x ./start.sh



FROM指定基础镜像
RUN 执行命令
COPY 复制文件/ADD 更高级的复制文件

所有的文件复制均使用 COPY 指令,仅在需要自动解压缩的场合使用 ADD

# 格式:COPY <源路径> <目标路径> 

COPY pip.conf /root/.pip/pip.conf
# 复制宿主机当前目录的pip.conf 到 容器/root/.pip/pip.conf
CMD 容器启动命令
# CMD 指令的格式和 RUN 相似,也是两种格式:
shell 格式: CMD <命令>
exec 格式: CMD ["可执行文件", "参数1", "参数2"...]

# 示例
CMD echo $HOME
# 直接执行 nginx 可执行文件,并且要求以前台形式运行
CMD ["nginx", "-g", "daemon off;"]
ENTRYPOINT 入口点
# 示例
ENTRYPOINT [ "curl", "-s", "http://ip.cn" ]
ENTRYPOINT ["docker-entrypoint.sh"]
ENV 设置环境变量
# 格式有两种:
ENV <key> <value>
ENV <key1>=<value1> <key2>=<value2>...
WORKDIR 指定工作目录
WORKDIR /var/www/djangosite
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值