白季飞龙的个人主页

Docker大杂烩

1. 安装Docker

以macOS为例:

brew cask install docker 注意:不能使用brew install docker,这样安装的docker不完整,不能直接使用。

可以直接下载dmg(http://mirrors.aliyun.com/docker-toolbox/mac/docker-for-mac/stable/Docker.dmg?crazycache=1)。注意:千万别去daocloud下载,2018年7月下载到的是2016版。。。

ArchLinux下安装Docker

  1. pacman -S docker
  2. systemctl start docker
  3. sudo docker info

普通用户要想使用docker,得加入docker的group:

  1. sudo gpasswd -a <user> docker
  2. newgrp docker 刷新docker组(临时生效。重启系统永久生效)

运行Docker:

在应用面板中直接点击Docker的图标,根据提示申请Root权限后即可运行

使用镜像加速器:

在Docker设置面板添加一个"Registry Mirror",保存配置并重启使用docker info查看是否生效。

阿里云的镜像加速器需要注册帐号,最后得到的加速地址形如"https://si1lc6i7.mirror.aliyuncs.com""

2. Docker常用命令

3. Hello World

docker run hello-world 拉取hello-world:latest镜像,创建并运行容器

4. 镜像管理

5. 容器管理

6. 实例 使用Docker打包Flask应用

app.py

from flask import Flask

app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"

Dockerfile

FROM centos
RUN yum install -y https://centos7.iuscommunity.org/ius-release.rpm \
    && yum install -y python36u-pip \
    && cd /usr/bin \
    && ln -s python3.6 python3 \
    && ln -s pip3.6 pip3 \
    && pip3 install flask \
    && yum clean all
WORKDIR /root/app
COPY app.py .
ENV LC_ALL=en_US.utf8 FLASK_ENV=development
CMD flask run --host 0.0.0.0
  1. 构建镜像 `docker build --tag mycent .

2. 运行镜像docker run -it --rm -p 5000:5000 mycent 3. 检验是否运行curl localhost:5000`

注意:

  1. 构建镜像时,尽量把费时的、不变的操作放到前面,这样以后构建的时候docker会优先从缓存获取每一步的构建
  2. docker中的应用应该绑定所有网卡,否则在docker外访问不到

7. 只打包flask,具体应用挂载进去

Dockerfile

FROM centos
RUN yum install -y https://centos7.iuscommunity.org/ius-release.rpm \
    && yum install -y python36u-pip \
    && cd /usr/bin \
    && ln -s python3.6 python3 \
    && ln -s pip3.6 pip3 \
    && pip3 install flask \
    && yum clean all
ENV LC_ALL=en_US.utf8 FLASK_ENV=development
CMD cd /root/app && flask run --host 0.0.0.0

运行:docker run --mount type=bind,source=/home/bj/temp/docker/mycent,target=/root/app -it --rm -p 5000:5000 mycent

8. 以alpine系统为基础构建flask应用镜像

Dockerfile

FROM alpine
RUN apk update && apk add python3
COPY app /root/app
WORKDIR /root/app
RUN pip3 install -r requirements.txt
ENV FLASK_ENV=development
CMD cd /root/app && flask run --host 0.0.0.0

漫漫路,莫论逍遥;潜心修,只为悟道