创建镜像
方式1: dockerfile
注意:尽量减少dockerfile的原生操作,(每次操作)镜像层叠加会导致最终镜像占用较大空间。
#引入基础镜像
FROM centos
# 切换工作目录
WORKDIR /usr
#拷贝本地到镜像
COPY streamSer.tar.gz /usr
#镜像内的Linux操作
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
echo "Asia/Shanghai" > /etc/timezone && \
tar zxf streamSer.tar.gz && \
tar zxf local.tar.gz -C /usr/local/ && \
rm -rf streamSer.tar.gz local.tar.gz && \
echo "PATH=/usr/local/ffmpeg/bin:$PATH" >> ~/.bash_profile && \
echo "export PATH" >> ~/.bash_profile && \
echo "alias ll='ls -l' " >> ~/.bashrc && \
echo "alias ls='ls --color' " >> ~/.bashrc && \
source ~/.bash_profile && \
# 启动时运行这个命令
CMD ["/bin/bash"]
方式2: 手动执行创建
docker build -t centos:v1.0 .
#docker rm $(docker ps -aq -f "dangling=true")
docker images #查看镜像
docker run -itd --volume /home/liurui:/home/liurui --name test imageID bash
docker run -itd --volume /home/liurui:/home/liurui --name ce1 5d0da3dc9764 bash
docker run -itd --name ce1 5d0da3dc9764 bash
#安装依赖的操作过程 省略
docker commit -m '镜像描述' -a '制作者' 容器名 镜像名
docker commit -m 'centos' -a 'TEST' 8f74496ecd67 media_ser:v0
docker images #查看镜像
已有镜像的修改与复用
docker save -o tar包的名字 镜像名 # 导出镜像
docker load -i 镜像tar包所在路径 # 导入镜像
docker images #查看镜像
docker tag 0e116d891c40 media_ser:v2 # 修改标签
docker run -itd --privileged=true --volume /home/media_ser:/home/media_ser --name s1 -p 10008:10008 -p 554:554 -p 5566:5566 0e116d891c40 bash
容器打包
docker export -o test.img s1 #导出容器镜像
docker import test.img med_ss:v0 #导入容器镜像
区别:
docker save保存的是镜像(image),docker export保存的是容器(container);
docker load用来载入镜像包,docker import用来载入容器包,但两者都会恢复为镜像;
docker load不能对载入的镜像重命名,而docker import可以为镜像指定新名称。
docker import的包一般比docker load的小
容器信息查看与修改
docker inspect 容器id #查看容器信息
docker update --memory=xxg 容器id #修改容器内存
docker update --cpus=xx 容器id #
docker rename 原容器名称 新容器名称