最近打算突破一下 docker的知识,买了一门课程
,这里同步做一下笔记。,优点:制作方便,
只要进入容器,安装好环境,就可以制作一个新的镜像,并部署到其他环境。,缺点:容器内新增的服务必须在启动后,再进入容器启动一次服务,但是可以通过启动时执行指定命令来解决这个问题,以上命令就是切换到/opt目录,创建一个code子目录,安装vim和wget,使用镜像启动容器时默认的运行命令,如果在docker run的时候,在后面带上自定义命令,那么这个命令就会被替换掉,导致容器启动的时候不会执行,所以一般我们不用这个,和上面的CMD命令相似,但是不会被启动容器时的自定义命令替换掉,一定会执行;还有一个用法是在docker run后面的自定义命令可以作为ENT RYPOINT的命令参数传入,从
主机拷贝文件到容器中,和copy命令类似,拷贝文件到镜像中,但是对于压缩文件(含有tar的)拷贝过去会直接解压,指定容器要对外暴露的端口,在dockerfile中声明了VOLUME绑定目录并不会在容器启动的时候帮我们自动绑定目录,那么VOLUME和-v有什么区别呢?假设我们在dockerfile中声明了,那么我们使用不同的命令启动时,所以如果一个镜像制作的时候使用了VOLUME,那么每次启动都会在宿主机上创建一个数据目录,如果这个目录里存在的东西很多,那么时间长了,我们就会发现宿主机上 空间越来越小,即使你重启容器也不行。所以要了解这个性质,针对性的清理docker目录。,相当于cd命令,区别是在dockerfile中使用了WORKDIR后,在它下面的语句,工作目录都变成了WORKDIR指定的目录,在dockerfile中设置环境变量,主要为了在执行docker run的时候可以通过-e参数修改环境变量,这样也可以使镜像更加通用。例如MySQL安装时要指定用户名、密码、绑定IP,如果直接在容器里面安装,那么我们如果要修改的话,必须登录到容器中,进行修改重启。但是在dockerfile中指定了ENV变量,那么在docker run的时候就可以修改这些设置。,下面给一个简单的dockerfile例子,在当前目录下创建dockerfile文件,并使用docker build命令制作镜像,在很多
企业中,都不能肆意的访问外网,那这样是不是docker就没法愉快的使用了呢?我们通常下载镜像都是从docker hub官方仓库下载的,如果在企业内部搭建一个私有镜像库,那是不是就能像外网一样使用docker了呢,docker官方为我们提供了非常简单的搭建私有库的方式:,好了,通过以上命令我们的私有镜像库就搭建好了,是不是很简单呢?那么怎么使用呢?,vim /etc/docker/daemon.json,{,"insecure-registries": ["xx.xx.xx.xx:5000"],},systemctl restart docker,修改镜像名称,添加私有镜像库地址为前缀,然后push到镜像库,点击上方“ python 爬 虫实战之路”,关注公众号满满干货,极速送达
最近打算突破一下docker的知识,买了一门课程,这里同步做一下笔记。
获取镜像
查询镜像
删除镜像
导入导出镜像
启动容器
进入容器
查询容器
删除容器
容器网络
容器其他操作
容器持久化存储
数据卷容器
基于容器制作镜像
优点:制作方便,只要进入容器,安装好环境,就可以制作一个新的镜像,并部署到其他环境。
缺点:容器内新增的服务必须在启动后,再进入容器启动一次服务,但是可以通过启动时执行指定命令来解决这个问题
基于Dockerfile制作镜像
以上命令就是切换到/opt目录,创建一个code子目录,安装vim和wget
使用镜像启动容器时默认的运行命令,如果在docker run的时候,在后面带上自定义命令,那么这个命令就会被替换掉,导致容器启动的时候不会执行,所以一般我们不用这个
和上面的CMD命令相似,但是不会被启动容器时的自定义命令替换掉,一定会执行;还有一个用法是在docker run后面的自定义命令可以作为ENT RYPOINT的命令参数传入
从主机拷贝文件到容器中
和copy命令类似,拷贝文件到镜像中,但是对于压缩文件(含有tar的)拷贝过去会直接解压
指定容器要对外暴露的端口
在dockerfile中声明了VOLUME绑定目录并不会在容器启动的时候帮我们自动绑定目录,那么VOLUME和-v有什么区别呢?假设我们在dockerfile中声明了
那么我们使用不同的命令启动时
所以如果一个镜像制作的时候使用了VOLUME,那么每次启动都会在宿主机上创建一个数据目录,如果这个目录里存在的东西很多,那么时间长了,我们就会发现宿主机上空间越来越小,即使你重启容器也不行。所以要了解这个性质,针对性的清理docker目录。
相当于cd命令,区别是在dockerfile中使用了WORKDIR后,在它下面的语句,工作目录都变成了WORKDIR指定的目录
在dockerfile中设置环境变量,主要为了在执行docker run的时候可以通过-e参数修改环境变量,这样也可以使镜像更加通用。例如MySQL安装时要指定用户名、密码、绑定IP,如果直接在容器里面安装,那么我们如果要修改的话,必须登录到容器中,进行修改重启。但是在dockerfile中指定了ENV变量,那么在docker run的时候就可以修改这些设置。
下面给一个简单的dockerfile例子
在当前目录下创建dockerfile文件,并使用docker build命令制作镜像
搭建私有镜像库
在很多企业中,都不能肆意的访问外网,那这样是不是docker就没法愉快的使用了呢?我们通常下载镜像都是从docker hub官方仓库下载的,如果在企业内部搭建一个私有镜像库,那是不是就能像外网一样使用docker了呢,docker官方为我们提供了非常简单的搭建私有库的方式:
好了,通过以上命令我们的私有镜像库就搭建好了,是不是很简单呢?那么怎么使用呢?
vim /etc/docker/daemon.json
{
"insecure-registries": ["xx.xx.xx.xx:5000"]
}
systemctl restart docker
修改镜像名称,添加私有镜像库地址为前缀,然后push到镜像库