Docker+swoft

本文介绍了Docker的基本概念,如镜像、容器等。重点阐述基于Swoft的Docker基本操作,包括搭建环境创建容器、挂载项目以及打包代码等内容,还提及端口映射的作用,以及容器和镜像的查看、启动、停止、删除等操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Docker

以下纯属个人理解: 
1. Docker就是一种虚拟机,将环境打包成镜像,等于做了一个Linux系统裁剪。 
2. 镜像就是我们安装系统的镜像,里面包含了你的代码和环境。 
3. 容器就是一个虚拟机,你可以用一个镜像创建多个容器,等于就是安装了多个虚拟机。 
4. 然后用docker exec就可以进入容器执行命令,等于就是开了一个shell。但是有点不同的是,你在前台跑的命令,哪怕你关掉当前“页面”(可能是shell或者cmd,看在哪里运行的docker),命令还是在执行。 
5. 当你将代码和环境都弄好了,就可以打包成镜像发布了,可以公开也可以私用,随便你,可以理解为就是一个iso文件。

下面来看下基本操作:(基于Swoft的)

搭建环境   

 

创建一个名为swoft的容器:

 docker run -d -p 80:80 --name swoft swoft/swoft

这里就是利用swoft/swoft镜像运行一个名为swoft 的容器,然后-d表示后台运行,-p表示端口映射。 
为什么要端口映射?我们写的web代码大多数都是要请求80端口,但是这是虚拟机,实际上还是只有一个80端口,所以可以映射比如81端口,别人访问81端口的时候就会映射去访问docker里面的80端口,而不用去特意在代码里面改成81端口。

如果成功了:

docker images #查看所有镜像,会看到一个名为swoft/swoft的镜像。

docker ps -a #查看所有容器,可以看到一个名为swoft且正在运行的容器。

# 进入容器 docker exec -it swoft /bin/bash

#停止容器 docker stop swoft

#启动容器 docker start swoft

 

挂载项目

此时我们运行的是官方的代码,那我自己要写代码怎么操作? 
我们在某个地方git代码,比如/home/www/myswoft 
然后写代码,写完之后:

docker run -it --rm -p 81:80 -v /home/www/myswoft/ :swoft/swoft /bin/bash

#--rm表示我退出容器后就删掉容器。

然后就会进入容器里面

php bin/swoft start

#将swoft运行起来

此时docker ps -a会看到一个正在跑的容器,

然后执行的就是你写代码。 exit #退出容器。

 

打包代码

功能什么的都写好了,想换个服务器运行,这个时候就可以直接打包:

docker build -t myswoft:v1 . 在/home/www/myswoft,也就是放代码的位置运行,swoft已经将dockerfile写好了,直接用。 注意最后的点不要掉了,表示当前目录。myswoft就是镜像的名字,v1就是版本号。 然后docker ps -a可以看到自己打包的镜像,如果不满意可以: docker rmi ID #根据ID删镜像 接下来可以试着运行一下试试: docker run -p 81:80 --name myswoft myswoft:v1 不满意: docker rm imagename #根据名字删容器 都弄好了, 要发布或者下载下来: docker save -o /home/myswoft myswoft:v1 在别的服务器导入镜像: docker load < /home/myswoft

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值