【Docker】【基础基本使用

网友投稿 667 2022-05-29

一、基本命令使用

1. docker run -d -p 80:80  images_name 后台独立运行一个容器:

参数说明:

-d       --在隔离模式下后台运行一个docker容器

-p 80:80 --将宿主机的80端口映射到容器的80端口

images_name --需要运行的镜像

2. Docker exec

二、docker基本使用

制作docker镜像

镜像的制作有两种方法:

第一种,使用dockerfile文件制作镜像:

制作镜像之前,需要有一个应用程序作为制作镜像的内容,将应用程序包准备好。

制作镜像需要一个dockerfile文件,在准备好的应用程序包根目录下创建一个dockerfile文件。

使用docker build -t images_name .  查找当前目录的dockerfile文件来将该应用程序包编译成指定名字镜像。

第二种,先docker run运行一下基础镜像,在容器中完成应用的部署与启动,再使用docker commit生成镜像。使用这种方式生成的镜像会在k8s中部署会出现问题,不推荐使用

运行应用容器

使用基本运行命令docker run -d -p  src_port: dst_port  images_name,运行上面制作的镜像在一个容器中

在浏览器访问http://localhost:src_port就会访问到刚才打包的应用App入口了

打开docker仪表板或者使用命令docker ps就能看到后台正在运行的应用容器了。

当我们想进去查看某个运行的容器的时候,我们可以使用命令:docker exec 进入到某个运行容器的环境中。

更新应用容器

【Docker】【基础】基本使用

当我们需要更新修改应用程序代码的时候,需要重新更新制作应用镜像,并重新运行应用容器;如果我们之间修改代码之后,重新制作镜像,并重新运行容器会出现端口冲突的问题,因为原来的旧容器还在运行,直接重新运行会发生冲突。更新方法是替换原来旧的容器。将旧 的容器给删除掉。

获取需要删除的容器ID,使用docker ps命令获取

停止运行旧的容器,使用命令docker stop

停止容器之后,就可以移除该容器,使用命令docker rm

也可以使用命令docker rm -f ,强制停止并删除容器

最后就可以重新运行docker run -dp :  

共享应用容器

想要共享你的应用容器,首先的将你的镜像给共享出去,共享镜像,则需要docker仓库,docker默认的仓库是Docker Hub,Docker Hub仓库是最大的容器仓库和社区,提供能我们免费访问和使用,我们访问Docker Hub只需要注册一个Docker ID即可。

在Docker Hub上面注册https://www.docker.com/pricing?utm_source=docker&utm_medium=webreferral&utm_campaign=docs_driven_upgrade

登录到Docker Hub,创建一个仓库,自定义个仓库名

共享的话,确保可见性为public,当然也提供私人仓库,供个人或者团队使用

然后就可以使用示例命令:docker push : tagname将镜像推送到共享仓库中了。

登录docker Hub:docker login - u docker_id

使用docker tag将要推送的镜像名称赋予一个新名称:docker tag

然后可以直接推送镜像了:docker push

共享镜像之后,就可以在别的机子上面直接从你共享的仓库中拉取镜像并运行一个新的应用容器实例。

容器数据持久化DB

当我们运行一个应用容器之后,由于修改代码,重新更新应用容器,会发现之前的操作的数据不见了,为什么每次重启容器之后,数据都被清除掉了?因为每个容器运行之后,都拥有自己的独立文件系统,在其上面创建、更新和删除文件都不会影响到其他容器,使用的知识暂时的存储空间。因此我们需要将应用容器操作的数据保存进行持久化。

docker提供了存储卷volumes对象,每个容器可以利用存储卷可以将容器的文件系统路径连接到宿主机的文件路径,也就是说容器的文件目录装载的是宿主机的文件目录,容器对文件的更改在宿主机上也能看得到,如果重启容器时也是装载相同的目录,则也就共享到原来相同的文件了。docker默认是不使用volumes;使用volume有两种类型:一种是直接命名volumes,另一种是绑定挂载volumes。

第一种直接创建并命名volume。

创建一个volumes,通过使用命令:docker volume create

将原来的运行容器都停掉,使用一下命令重新启动容器(增加对volume的使用):docker run -dp : -v :/path

可以使用docker volume inspect 查看具体的存储信息:

docker volume inspect

[

{

"CreatedAt": "创建时间",

"Driver": "local",

"Labels": {},

"Mountpoint": "数据存储位置",

"Name": "命名vulumes的名字",

"Options": {},

"Scope": "local"

}

]

第二种:使用绑定挂载vulume

绑定挂载与直接命名volume区别在于:

直接命名volume的存储位置有docker控制,有默认路径,并且可以查看volume信息

绑定挂载存储位置不由docker控制,由我们自己定义

docker run -dp 3000:3000 \

-w /app -v "$(pwd):/app" \

参数说明:

-w:设置容器运行的工作目录为/app

-v "$(pwd):/app" :绑定容器的工作目录/app挂载到宿主机的当前目录上

Docker 容器 镜像服务

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:小熊派IoT开发板华为物联网操作系统LiteOS内核实战教程05-互斥锁
下一篇:《Go语言实战》笔记(十三) | Go 并发资源竞争
相关文章