docker 的原理及在ubuntu、Mac上的安装
节本步骤
一、docker的基本原理及命令
二、Ubuntu上docker的安装配合阿里云加速器 加速器地址
docker安装
docker进程使用Unix Socket而不是TCP端口。而默认情况下,Unix socket属于root用户,需要root权限才能访问。docker守护进程启动的时候,会默认赋予名字为docker的用户组读写Unix socket的权限,因此只要创建docker用户组,并将当前用户加入到docker用户组中,那么当前用户就有权限访问Unix socket了,进而也就可以执行docker相关命令。
三、Mac上docker的安装(使用Docker for Mac)
四、Dockerfile编写
FROM ubuntu:15.10
# ubuntu 版本15.10
MAINTAINER patrick <166199571542163.com>
RUN cp /etc/apt/sources.list /etc/apt/sources.list.bak && rm /etc/apt/sources.list && mkdir /home/spider && cp /etc/resolv.conf /etc/resolv.conf.bak && rm /etc/resolv.conf
# 将爬虫项目放到/home/spider路径下
COPY ./spider /home/spider/
COPY ./source.list /etc/apt/
COPY ./resolv.conf /etc/
# 解决源问题
RUN apt-get update
RUN apt-get install python3 && apt-get install python-pip
# 安装Python3及pip
WORKDIR /home
RUN cd /home/spider && pip install requirments.txt && echo "hello-docker" \
&& echo "hello-world"
# 安装依赖包
CMD ["python3 ./spider/test0.py"]
# 启动容器是执行test0.py
# 所有的路径都是相对于Dockerfile的相对路径
创建镜像时出现错误
尝试在ubuntu镜像里安装Python3 并且安装Python3-pip,出现unable load package python3错误
后来apt-get update更新源
尝试更新阿里源并且修改DNS无果
后发现无需创建ubuntu镜像,而创建python3镜像就可以
FROM python:3.6
COPY ./spider/ ./code
COPY ./spider/scrapy.cfg /etc/scrapyd/
WORKDIR ./code
EXPOSE 6800
RUN pip3 install -r requirments.txt
CMD ["scrapyd"]
# 创建镜像
docker build -t name:tag .
# 删除镜像
docker rmi imageid
# 查看镜像
docke images
# 创建容器
# name:tag可以替换成imageid
docker run -it --name containerName name:tag
# 创建容器并且将目录挂载到容器
docker run -it --name containerName -v fromPath:toPath name:tag
# docker run 等同于docker create创建容器 、docker start启动容器 并且参数一致
# 停止容器
docker stop containerid
# 删除容器
docker rm containerid
# 查看正在运行的容器/查看所有容器
docker ps / docker ps -a