#启动镜像
sudo docker run --name webserver -d -p 80:80 nginx
#查看镜像和启动镜像区别
sudo docker diff webserver
#直接提交镜像
sudo docker commit
--author "allenhaozi@gmail.com"
--message "add new feature"
webserver
nginx:v2
#清理所有出于终止态的容器
sudo docker rm $(sudo docker ps -a -q)
#进入docker
sudo exec -it <container_name> bash
#docker file
FROM reg.docker.inc.com/centos COPY local /home/admin/local RUN yum install vim-minimal.x86_64 -y && yum install openssl-libs.x86_64 -y && yum install net-tools -y && ln -s /usr/lib64/libssl.so.1.0.2k /usr/lib64/libssl.so.6 && ln -s /usr/lib64/libcrypto.so.1.0.2k /usr/lib64/libcrypto.so.6 && ln -s /home/admin/local/luajit/lib/libluajit-5.1.so.2 /lib64/libluajit-5.1.so.2 EXPOSE 8010 WORKDIR /home/admin CMD ["/home/admin/local/tengine/sbin/nginx","-g","daemon off;"]
#编写好Dockerfile后, build镜像
sudo docker build -t reg.docker.master.com/name:version .
注意到最后的一个 " . " . 表示当前目录, 而Dockerfile就在当前目录
docker build的工作原理: docker 引擎(服务端守护进程)和客户端工具
docker 的引擎提供一组REST API被称为 Docker Remote API,
而如 docker 命令这样的客户端工具,则是通过这样组API与Docker引擎交互,
从而完成各种功能,
镜像的build 并非在本地构建, 而是在服务端,
命令得知这个路径后,会将路径下的所有内容打包,然后上 传给 Docker 引擎。这样 Docker 引擎收到这个上下文包后,展开就会获得构建镜 像所需的一切文件。
#镜像标记tag
#镜像打标格式为 docker tag IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG]
sudo docker tag <image-name> reg.docker.master.com/name:version
举例: 使用docker tag 将ba58 这个镜像标记为 192.168.7.26:5000/test
$sudo docker tag ba58 192.168.7.26:5000/test
#上传镜像
sudo docker push reg.docker.master.com/name:version
#加载非remote的镜像
sudo docker load -i nginx.tar.gz
#导出本地镜像到tar文件
sudo docker -o nginx.tar nginx:v.1.1.1