基本条件
需要安装docker
打包镜像
这里以 mattrayner/lamp为基础
mattrayner/lamp,网站根目录位于 /app,数据库root用户默认无密码
开启容器后,进行编辑(配置主页等),容器内ctrl+p+q
可快速退出容器
# 开启容器
docker run -it -name dockerName mattrayner/lamp
# 进入容器
docker exec -it lamp bash
# 导入数据库推荐使用这种方法
容器内:mysql < sqlFile.sql
# 移动文件到docker容器方法
docker cp 本地文件 dockerName:容器内路径
# 基于修改后的容器创建镜像
docker commit 容器名字 镜像名称
# 镜像重命名,用于联网下载镜像
docker tag 旧镜像名 用户名称/新镜像名
# 导出镜像
docker save -o 导出名字.tar 镜像名字
# 登入账号(需要先在官网创建)
docker login
docker push 用户名称/镜像名
获取/使用镜像
获取
有网
# 直接下载镜像
docker pull 用户名称/镜像名
没网
服务器需要与有镜像包的主机互通,直接通过文件传输命令传输,方法有多种
# 获取镜像
scp 导出的镜像 root@服务器ip:上传路径
#导入镜像
docker load < 名字.tar
使用
让容器继承某个网卡,打到同网段通信的目的(注:容器可以与网段内主机互通,但是不和宿主机互通)
# 创建虚拟网卡,-d 驱动网络管理为macvlan虚拟化网卡,parente指定为基础网卡(能和网段内通信的网卡)
docker network create -d macvlan --subnet=网段/掩码 --gateway=网关 -o parent=网卡 虚拟网卡名
# 使用虚拟网卡启动容器
docker run -d --privileged --net 虚拟网卡名 --ip=指定ip --name 容器名 镜像名