首页 > 其他分享 >Swoft+Docker

Swoft+Docker

时间:2023-09-04 20:23:00浏览次数:30  
标签:容器 代码 myswoft swoft 镜像 docker Docker Swoft

Docker

以下纯属个人理解:

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

下面来看下基本操作:(基于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/:/var/www/swoft  swoft/swoft  /bin/bash
 -v  (本机要共享的目录):(容器上同步的目录)  --name (数据卷容器的名称)
如果是windows下:本机目录:/d/www/myswoft
 
#--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

标签:容器,代码,myswoft,swoft,镜像,docker,Docker,Swoft
From: https://www.cnblogs.com/HappyTeemo/p/17678000.html

相关文章

  • docker fs 文件系统
    sudodockerrun--nameaaa -it--rmbusyboxtop 会启动这个container去另一个terminal上进入这个容器,执行 echo123ddddd>>/aaaaaa,就是生成个文件去另一个terminal上主机上执行 >sudofind/-nameaaaaaa/applications/var_lib_docker/overlay2/9a36827......
  • ubuntu 22.04 安装docker-ce
    #!/bin/bash##安装依赖sudoapt-getupdatesudoapt-get-yinstallapt-transport-httpsca-certificatescurlsoftware-properties-common##安装GPG证书curl-fsSLhttps://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg|sudoapt-keyadd-##写入软件源信息sudoa......
  • docker常用命令
    1.帮助启动类命令1.启动systemctlstartdocker 2.停止systemctlstopdocker 3.重启systemctlrestartdocker 4.查看状态systemctlstatusdocker 5.开机启动(linux开机自动启动docker)systemctlenabledocker 6.查看docker概要信息dockerinfo......
  • docker桌面端安装mysql
    参考 https://www.yzktw.com.cn/post/735256.html1,搜索Images,mysql,选择合适的版本pull2,Images,中点击三角箭头,run,会弹出新建Containers弹框Containersname,随便写Ports需要写0Volumes选安装地址EnvironmentVarialbes需要加上密码MYSQL_ROOT_PASSWORD: 123456 3,运行......
  • Docker构建Jenkins
    拉取jenkins的docker镜像,这里用的是lts的长期支持版本,你可以到jenkins官网自由选择其他版本(下载速度慢,花了两个小时,如果中途出现超时再次运行该命令即可)dockerpulljenkins/jenkins:lts配置宿主机映射到容器的目录,之后jenkins的一些配置文件......
  • Docker常用命令
    1、Docker容器信息##查看docker容器版本dockerversion##查看docker容器信息dockerinfo##查看docker容器帮助docker--help2、镜像操作提示:对于镜像的操作可使用镜像名、镜像长ID和短ID。2.1、镜像查看##列出本地imagesdockerimages##含中间映像层dockerimages-a##......
  • 安装Docker compose v2
    转载自好友随遇而安的博文。介绍目前Docker官方用GO语言重写了DockerCompose,并将其作为了dockercli的子命令,称为ComposeV2。安装首先要先安装docker,再进行接下来的安装。仅为当前用户安装$mkdir-p$HOME/.docker/cli-plugins$curl-Lhttps://github.co......
  • 微服务发布到docker后,一直重启Restarting (1) 2 seconds ago.
     使用dockerlogs加容器的ID命令,就可以查看该容器的启动的具体信息了。dockerlogsc59ba37a2508看一下日志:根据具体的报错信息来处理就可以了。  ......
  • Docker镜像分层机制
    起源公司做云桌面,导师给我讲镜像分层机制,说到了一个弊端,即保存用户数据的层即使写入一个很小的txt文件也会占用3G大小,当时我就想到了Docker的镜像分层机制,为什么Docker不会有这个弊端,所以今天撸一下Docker的镜像分层原理。这里默认你已经知道Docker的镜像分层机制了,所以不会对它......
  • docker二进制安装
    docker自动安装脚本下载软件wgethttps://download.docker.com/linux/static/stable/x86_64/docker-24.0.5.tgzwgethttps://github.com/docker/compose/releases/download/v2.21.0/docker-compose-linux-x86_641.安装docker和docker-compose将安装脚本install.sh和二进制......