Docker是一种轻量级容器化技术,它能够将应用程序及其依赖项打包成一个独立的容器,提供了一种快速、可靠、可移植的方式来部署应用。而Docker Hub则是一个广受欢迎的公共镜像仓库,类似Github供开发者们分享、存储和获取镜像。
有时候看到自己喜欢的内容,万一哪一天作者修仙,删库飞升了,怎么办?这个时候克隆docker镜像,上传到自己docker hub仓库为己用就显得很有意义。
这次我就分两个部分来讲一下如何克隆镜像 如何修改镜像,上传到仓库为己用。
本次就以上一篇的独角数卡为例,为了都能看的懂,我傻瓜式从头教到尾
1.安装docker和docker-compose(装过可以忽略)
输入下面的命令,两个代码就可以,直接安装即可:
sudo apt-get update
sudo apt-get install docker docker-compose
2.创建安装的目录
sudo -i
mkdir -p /root/data/docker_data/shop
cd /root/data/docker_data/shop
mkdir storage uploads
chmod -R 777 storage uploads
3.创建一个env.conf文件,并且授予权限
touch env.conf
chmod -R 777 env.conf
4.编辑docker-compose.yml文件,输入以下命令:
vim docker-compose.yml
代码如下,直接复制即可:
version: "3"
services:
web:
image: stilleshan/dujiaoka
environment:
# - INSTALL=false
- INSTALL=true
# - MODIFY=true
volumes:
- ./env.conf:/dujiaoka/.env
- ./uploads:/dujiaoka/public/uploads
- ./storage:/dujiaoka/storage
ports:
- 6789:80 # 6789可以改成任意服务器没有使用过的端口,80不要修改
restart: always
db:
image: mariadb:focal
restart: always
environment:
- MYSQL_ROOT_PASSWORD=changeyourpassword
- MYSQL_DATABASE=dujiaoka
- MYSQL_USER=dujiaoka
- MYSQL_PASSWORD=changeyourpassword
volumes:
- ./mysql:/var/lib/mysql
redis:
image: redis:alpine
restart: always
volumes:
- ./redis:/data
5.编辑env.conf文件
vim env.conf
代码如下:
APP_NAME=店铺
APP_ENV=local
APP_KEY=base64:rKwRuI6eRpCw/9e2XZKKGj/Yx3iZy5e7+FQ6+aQl8Zg=
APP_DEBUG=true
APP_URL=https://你的域名
LOG_CHANNEL=stack
# 数据库配置
DB_CONNECTION=mysql
DB_HOST=db
DB_PORT=3306
DB_DATABASE=dujiaoka
DB_USERNAME=dujiaoka
DB_PASSWORD=changeyourpassword
# redis配置
REDIS_HOST=redis
REDIS_PASSWORD=
REDIS_PORT=6379
BROADCAST_DRIVER=log
SESSION_DRIVER=file
SESSION_LIFETIME=120
# 缓存配置
# file为磁盘文件 redis为内存级别
# redis为内存需要安装好redis服务端并配置
CACHE_DRIVER=redis
# 异步消息队列
# sync为同步 redis为异步
# 使用redis异步需要安装好redis服务端并配置
QUEUE_CONNECTION=redis
# 后台语言
## zh_CN 简体中文
## zh_TW 繁体中文
## en 英文
DUJIAO_ADMIN_LANGUAGE=zh_CN
# 后台登录地址
ADMIN_ROUTE_PREFIX=/admin
# 是否开启https (前端开启了后端也必须为true)
# 后台登录出现0err或者其他登录异常问题,大概率是开启了https而后台没有开启,把下面的false改为true即可
ADMIN_HTTPS=false
6.检查端口是否被占用
lsof -i:6789
7.直接拉起镜像
docker-compose up -d
好了,接下来的安装过程我就直接忽略哈,一般问题不大,直接开始克隆过程了。
8.先登录到Docker Hub,输入命令后,填入账号密码,以完成登录
docker login
9.输入以下命令找到镜像的名称,stilleshan/dujiaoka
docker images #查看镜像命令,镜像的名称stilleshan/dujiaoka
10.之后重新标记镜像,可以使用docker tag命令重新标记你想要上传的镜像,后面记得加镜像标签
docker tag stilleshan/dujiaoka:latest 你的用户名/你的仓库名:latest
或者
docker tag (镜像id) 你的用户名/你的仓库名:latest
上面两种标记方法都是可行的,一种是镜像名称,一种是镜像id,记住不是容器id。之后会有两个镜像id一样的。
11.接着再输入docker images,查看通过tag标记的镜像,复制镜像的名称
12.最后上传镜像,可以使用以下命令将重新标记的镜像上传到仓库。
docker push 你的用户名/你的仓库名:latest
结束语录:
肿么样,是不是灰常的简单。细看整个过程无非就是克隆标记,push到仓库这么简单。一切顺利完成,你可以删除本地所有的文件 镜像 缓存,同时退出登录,在重新拉起镜像,查看是否 完整无暇。
最后最后,寄出本人的卸载大法:
a.删除创建的目录
sudo -i
cd /root/data/docker_data/shop
cd ..
rm -rf /root/data/docker_data/shop
b.删除镜像
docker images
docker rmi -f 镜像id #当然镜像名称也是可以的,推荐用id
c.进入本地环境目录删除(慎用)
var/lib/docker/overlay2 #除了L文件夹,其它全部删除,包括L文件夹里面的,留空就可以了
d.清理缓存和临时文件(非常慎重)
docker system prune -a
这将清除不再使用的镜像、容器和相关的缓存文件。请注意,这个命令会删除所有未使用的镜像和容器,包括本地未推送的镜像,所以请谨慎操作。