docker简介


Docker作为一个软件集装箱化平台,可以让开发者构建应用程序时,将它与其依赖环境一起打包到一个容器中,然后很容易地发布和应用到任意平台中


docker学习入门-总结_docker入门


docker安装


Docker 分为 CE 和 EE 两大版本。CE 即社区版(免费,支持周期 7 个月),EE 即企业版,强调安全,付费使用,支持周期 24 个月

自动脚本安装

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun



Docker 中三个核心:

1、Image(镜像)

2、Container(容器)

3、Repository(仓库)


镜像是 Docker 运行容器的前提,仓库是存放镜像的场所,可见镜像更是 Docker 的核心。


docker 架构


Docker 使用的是 C/S 结构,即客户端/服务器体系结构。


docker学习入门-总结_docker入门_02


docker常用命令


docker学习入门-总结_docker入门_03


docker镜像命令:


1、拉取镜像


docker pull image_name


2、查找镜像


docker search httpd    查找httpd的镜像


3、查看所有镜像


docker images


4、启动镜像


docker run -t -i ubuntu:14.04 /bin/bash


5、删除镜像


docker rmi hello-world


1、实际常用命令


1、容器生命周期管理

run

start/stop/restart

kill

rm

pause/unpause

create

exec


2、容器操作


ps

inspect

top

attach

events

logs

wait

export

port


3、容器rootfs命令


commit

cp

diff


4、镜像仓库


login

pull

push

search


5、本地镜像管理


images

rmi

tag

build

history

save

load

import


6、info|version


info

version



dockerfile文件


 Dockerfile 分为四个部分:

1、基础镜像(父镜像)信息指令 FROM。

2、维护者信息指令 MAINTAINER。

3、镜像操作指令 RUN 、EVN 、ADD 和 WORKDIR 等。

4、容器启动指令 CMD 、ENTRYPOINT 和 USER 等。

http://dockone.io/article/8350


docker学习入门-总结_docker入门_04



dockerfiles文件模版


1、通用模版


# base docker image
FROM anibali/pytorch:1.8.1-cuda11.1-ubuntu20.04

# Set up time zone.
ENV TZ=UTC
RUN sudo ln -snf /usr/share/zoneinfo/$TZ /etc/localtime

# Install system libraries required by OpenCV.
RUN sudo apt-get update \
&& sudo apt-get install -y libgl1-mesa-glx libgtk2.0-0 libsm6 libxext6 \
&& sudo rm -rf /var/lib/apt/lists/*

# 安装python程序运行程序的所有依赖
RUN python -m pip install --upgrade --no-cache-dir --ignore-installed -i https://mirrors.aliyun.com/pypi/simple \
flask==0.12.2 \

RUN python -m pip install --upgrade --no-cache-dir --ignore-installed --no-deps -i https://mirrors.aliyun.com/pypi/simple timm==0.3.2

USER root
ENV WORKPATH="/workspace"
ENV DEVICE="cuda:0"
ENV LC_ALL=C.UTF-8 \
LANG=C.UTF-8

RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo 'Asia/Shanghai' > /etc/timezone

# 创建工作目录
RUN sudo mkdir -p ${WORKPATH}

# 将当前路径的文件复制到容器内对应的目录下
COPY ./ ${WORKPATH}

# 切换到工作目录
WORKDIR ${WORKPATH}

# 进入服务代码所在的路径
WORKDIR ${WORKPATH}/service
# 通过gunicorn启动服务
CMD gunicorn -c gunicorn.conf.py --log-config log.conf app:app


2、centos模版


[root@root]# cat mydockefile-centos
FROM centos
MAINTAINER li

ENV MYPATH /usr/local
WORKDIR $MYPATH

RUN yum -y install vim
RUN yum -y install net-tools

EXPOSE 80

CMD echo $MYPATH
CMD echo "------end-------"
CMD /bin/bash


学习资源


参考文章:
https://www.runoob.com/docker/docker-resources.html

Docker 资源

Docker 官方主页: https://www.docker.com
Docker 官方博客: https://blog.docker.com/
Docker 官方文档: https://docs.docker.com/
Docker Store: https://store.docker.com
Docker Cloud: https://cloud.docker.com
Docker Hub: https://hub.docker.com
Docker 发布版本历史: https://docs.docker.com/release-notes/
Docker 常见问题: https://docs.docker.com/engine/faq/
Docker 远端应用 API: https://docs.docker.com/develop/sdk/

Docker 国内镜像

阿里云的镜像器:https://help.aliyun.com/document_detail
网易镜像器:http://hub-mirror.c.163.com
官方中国镜像器:https://registry.docker-cn.com
ustc 的镜像:https://docker.mirrors.ustc.edu.cn
daocloud:https://www.daocloud.io/mirror#accelerator-doc(注册后使用)


done