Docker guide
创始人
2024-02-02 17:46:21
0

前言

docker学习记录,内容参考

  • Docker Training Course for the Absolute Beginner

Basic Command

  • docker pull :只是下载image,不会运行
  • docker run :启动image实例,如果image不在docker host上,docker会在第一次启动的时候在docker hub下载并启动。option:[-d] 使得container在detach模式下运行,即后台运行
  • docker ps: 显示正在运行的docker容器,option:[-a]显示所有的容器,包括exited的容器
  • docker stop : 通过ps命令得到的docker名字和docker ID停止相应的容器运行,但是这个容器占用的资源不会释放,对应的容器的container会显示为Exited
  • docker rm :释放掉退出的或者正在运行的容器资源
  • docker images:docker host上目前下载的所有image资源
  • docker rmi :永久删除该image,注意要确保当前没有容器正在运行该image
  • docker exec :在正在运行的容器中执行command
  • docker attach :使container在前台运行(attach模式),ID不需要选择全部的内容,最短的不同前缀即可
  • docker inspect :检查container的详细信息
  • docker logs :得到container运行的日志信息

docker containers是用来运行一系列进程或者任务的,例如web服务器,一旦容器中的进程结束,容器就会立即exit。即,一个容器仅在在它内部运行的进程存活的时候存在,所以docker run ubuntu会立即退出,因为ubuntu是作为在它上面运行的其它应用的基础image,它内部默认是没有进程运行,所以启动就会退出。可以用docker run ubuntu sleep 100之类的命令在container内部执行sleep命令


Docker Run

  • docker run [:tag]:运行不同版本(tag)的image,默认tag为latest,dockerhub中可以查看具体的image版本
  • docker run -i :进入交互模式(interactive),可以接受console的标准输入。docker默认是不接受标准输入的,即便是在前台模式下。
  • docker run -t :将输出绑定到terminal终端,docker run -it 即可实现容器内任务的输入输出

Run: PORT mapping

当用docker container启动一个web服务的时候,如下,该web服务会监听5000端口
在这里插入图片描述
但是用户如何访问这个网站呢?一是用容器的IP地址(每个容器都会被默认分配一个IP),但是这个IP地址只能在docker的主机上访问,外部无法访问;另一种方法是使用docker主机的IP地址,但是这样需要将容器内部的port映射到docker主级的port上,使用端口映射会将主级端口收到的数据导向容器的对应端口,同时可以通过这个方式运行多个Image实例。注意,不能将重复的主机端口映射使用。

  • docker run -p :
    在这里插入图片描述

Run: Volume mapping

当用docker运行数据库服务,在数据库输入存储了很多数据后,需要将暂停该服务, 这样会导致之前的数据全部丢失,为了docker容器中的数据能够持久化保存,需要将docker中的相应存储文件映射到docker主机的存储文件上。
在这里插入图片描述
使用

  • docker run -v :

在这里插入图片描述


Docker Images

DockerFile中详细列举了docker container的配置信息,如下图所示,FROM指明操作系统,RUN后面跟相应的命令,COPY 将源代码拷贝到container的目录下,ENTRYPOINT指明最终的执行命令。Docker的构建是一层跟着一层的,即,它会先构建Ubuntu的layer,然后再后将apt-get update的layer,以此类推,这样的好处是,如果build时出现修改或者发生错误,也不需要从头开始。

在这里插入图片描述

  • docker build [OPTIONS] PATH | URL | -:path指定上下文环境,build过程中可以使用上下文的任何文件,URL 参数可以引用三种资源:Git 存储库、预打包的 tarball 上下文和纯文本文件。用法举例:docker build .
  • docker build -t vieux/apache:2.0 .docker build .的基础上增加了tag,该tag指明docker仓库是vieux/apache,版本tag为2.0
  • docker build -f Dockerfile.debug .指明使用Dockerfile.debug而不是默认的Dockerfile

这个视频详细解释了两者的区别,简单来说,dockerfile中的CMD和Entrypoint都是默认执行的命令,但是在docker host输入的docker run IMAGE ,这个command会直接代替掉CMD的内容,而Entrypoint则是在后面追加内容,所以entrypoint一般是接参数。

  • Entrypoint vs Command

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
一帆风顺二龙腾飞三阳开泰祝福语... 本篇文章极速百科给大家谈谈一帆风顺二龙腾飞三阳开泰祝福语,以及一帆风顺二龙腾飞三阳开泰祝福语结婚对应...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...