首页技术教程 正文

docker容器常用命令

2023-04-15 6 0条评论
最近打算突破一下 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到镜像库


文章版权及转载声明

本文作者:亿网 网址:https://edns.com/ask/post/25518.html 发布于 2023-04-15
文章转载或复制请以超链接形式并注明出处。