.1、镜像只能读取,为read-only 模式
2、关于镜像的指令:
查看本地镜像: docker images 【docker image ls 】
删除镜像: docke rmi 镜像Id
搜索镜像: docker search 【ip:port/用户名/仓库名:版本】或者默认去docker hub查找
创建镜像: (1)根据容器创建镜像: docker commit 容器ID 【host:port/用户名/仓库:版本】
(2)根据Dockerfile文件,创建镜像: docker build -t 【host:port/用户名/仓库:版本】 . ( . 代表使用当前文件中的Dockerfile文件,来创建镜像) 使用指令 docker history 镜像ID 来查看镜像的详细构建过程
3、关于容器 的实例化:
(1)实例化镜像-->容器:
一次性容器: docker run [ host:port /用户名/仓库 : 版本 ]
创建交互式容器: docker run -it [ host:port /用户名/仓库 : 版本 ] exit 退出 -- 同时容器停止运行
(2)容器相关指令
查看容器: docker container ls (正在运行的容器) / docker container ls -a (所有的容器)
docker ps -a
删除容器: docker container rm 容器ID【name】 删除容器之前,必须先停止容器
docker rm -f 容器ID
一次性删除大量的容器: docker rm $( docker container ls -aq ) -q : 只列出容器的ID
只删除已经停止的容器: docker rm $( docker container ls -f "status=exited" -q )
停止容器: docker container stop 容器Id [ name ]
4、通过Dockerfile创建image:
(1)创建Dockerfile文件,打开编辑
(2)创建基础镜像: FROM scratch 【centos...】
(3)LABEL : 注释说明
(4)RUN : 在容器中经常会安装一些软件,运行一些shell指令
注意:每运行一次run命令,就会形成新的一层image镜像;因为运行run命令的时候,它会先实例化一个容器,然后运行run命令,之后就是commit 提交镜像 ;供下次使用。
(5)WORKDIR 路径 类似cd 切换目录,进入某个目录下,去做一些事情
注意:
(6)ADD 和 COPY
注意:
(8)ENV 定义变量
格式 : ENV 变量名 值 使用 : $ 变量名
(9)VOLUME
(10)EXPOSE
(11)CMD 和 ENTRYPOINT
CMD 注意事项:
注意:EXec使用注意事项:
(18)发布自己的镜像:
docker push [ host:port/用户名/仓库:版本 ]
docker pull [ host:port/用户名/仓库:版本 ] docker rmi ..
推荐的方法: 在docker Hub 官网,创建
让docker Hub 用户和gitHub用户Link起来,并在GitHub上创建仓库,把Dockerfile文件存放在Github仓库中;
docker判断出只要GItHub仓库中有Dockerfile文件,docker就会自动使用docker build -t 指令,来生成相应的镜像。
我们只需要维护GitHub仓库中的Dockerfile文件即可。
(19)如何搭建一个私有的docker仓库,用来存放私有镜像????-- 涉及 registry 镜像
1、在服务器端: docker run -d -P 5000:5000 --restart always --name localRegistry registry : 2
创建一个容器,该容器专门用来存放私有镜像;相当于在服务器端启动了一个容器仓库,这个容器就是docker Hub的简化版
2、在客户端: docker build -t ip:port /仓库名:版本
docker push ip:port / 仓库名:版本 -- 第一次推送,可能会有错误 , 需要做如下配置:
(1)在 /etc/docker目录下,创建一个daemon.json文件,
insecure-registries" : [ "ip : port"] }
然后修改 /lib/systemd/system/docker.service 文件,加上EnvironmentFile选项
(2)重启docker服务: systemctl restart docker
(3)再次推送 docker push ip:port / 仓库名:版本
3、如何确认是否推送成功????
在浏览器: 输入 ip : port / v2 / _catalog