手动构建
1.关键字查找镜像
sudo docker search centos
2.下载基本镜像
sudo docker pull centos
3.启动容器
sudo docker run -d -it --name centos1 -h centos1 -p 91:80 -v /home/root:/my_python -w my_python centos /bin/bash
# 查看已经启动的docker
docker container ls
4.进入容器
sudo docker exec -it 容器id /bin/bash
5.进入更新软件
apt-get update
6.安装软件
yum install -y gcc 等
7.退出
exit
8.停止容器
docker stop 容器id
9.提交镜像
sudo docker commit -m "python3" 73795020d9d8 ubuntu-python3:3.5
73795020d9d8 容器id
ubuntu-python3 名字
3.5 :版本号
dockerfile构建
1.创建Dockerfile文件 D要大写
vim Dockerfile
# This is My first Dockerfile
# Version 1.0
# Author: yu
# Base image 最基础的镜像
FROM centos
# MAINTAINER 维护者 (已弃用) 用LABEL
LABEL maintainer="yu"
# ADD 添加文件 COPY也可以文件 但是ADD可以解压缩文件
ADD plist.txt(文件名称,这个路径,同级目录) /usr/local/src(添加到的路径)
ADD pore-8.37.tar.gz /usr/local/src
ADD nginx-1.9.3.tar.gz /usr/local/src
# RUN 要干什么 运行shell命令 安装软件和包
RUN yum install -y wget gcc gcc-c++ make openssl-devel
RUN useradd -s /sbin/nologin -M www # 添加用户
# WORKDIR 相当于cd 进入目录 尽量使用绝对目录
WORKDIR /usr/local/src/plist.txt
RUN pip install -r plist.txt
RUN ./configure --prefix=/uer/local/nginx --user=www --group=www --with-http_ssl_module --with-http_stub_status_module --with-pcre=/uer/local/src/pcre-8.37 && make && make install
RUN echo "daemon off;" >> /usr/local/nginx/conf/nginx.conf
# ENV 配置环境变量
ENV PATH /ust/local/nginx/sbin:$PATH
# EXPOST 映射端口 还可以设置端口监听是tcp或者udp 默认是tcp tcp可以不写
EXPOST 80/tcp
# CMD 执行命令 1.设置容器启动后默认执行的命令参数 2.如果docker run指定了其他命令,cmd命令会被忽略 3.如果定义了多个cmd,只会执行最后一个
CMD ['nginx']
# ENTRYPOINT 设置容器启动时运行的命令 1.让容器以应用程序或者服务的形式运行 2.不会被忽略,一定会执行 3.最佳实践:写一个shell脚本为entrypoint
2.运行Dockerfile文件
docker build -t(取个名称) my_nginx:V2 .(Dockerfile文件路径,也可以写绝对路径)