如何安装docker就略过了。
0x00 启动基础容器
[root@piao /]# docker run -i -t -d --name bt_lnmp -p 20:20 -p 21:21 -p 80:80 -p 443:443 -p 888:888 -p 8888:8888 --privileged=true -v $PWD/www:/www centos:7
-i
:即使没有附加也保持STDIN
打开;-t
:分配一个伪终端;-d
:分离模式,即在后台运行;--name
:指定容器别名,这里为bt_lnmp
;-p
:指定映射端口,前面是物理机端口,后面是容器端口;-v
:挂载数据盘,前面是物理机目录,后面是容器目录;centos:7
:启动的是centos镜像,TAG为7;
0x01 进入容器
[root@piao /]# docker exec -it bt_lnmp /bin/bash
0x02 更新系统
[root@c650ed16e81f ~]# yum install -y updage
[root@c650ed16e81f ~]# yum install -y upgrade
0x03 安装宝塔面板
[root@c650ed16e81f ~]# yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
3.1 后台地址
安装完成后会提示后台地址和默认用户名、密码,必要时可以使用bt default
查看:
[root@c650ed16e81f ~]# bt default
==================================================================
BT-Panel default info!
==================================================================
Bt-Panel-URL: http://IP:8888/admin
username: piao
password: ab8a2f10
Warning:
If you cannot access the panel,
release the following port (8888|888|80|443|20|21) in the security group
==================================================================
3.2 安装必要软件
登录宝塔面板后台,进入“软件商店”根据需要安装必要软件,如下图所示。

切记:每次启动面板,需要进入后台手动启动Nginx、PHP和MySQL服务。
3.3 添加启动脚本
[root@c650ed16e81f /]# echo 'bt start;tail -f /dev/null'>start.sh
[root@c650ed16e81f /]# chmod +x start.sh
tail -f /dev/null
让容器不退出。
0x4 将容器变成镜像
一切准备好之后就可以提交镜像
docker commit -m="添加宝塔Linux面板+LNMP环境" -a="piaoyun" bt_lnmp piaoyun/bt_lnmp:1.0
-m
:注释信息-a
:作者名称bt_lnmp
:待提交的容器名称piaoyun/bt_lnmp:1.0
:提交后的镜像名:TAG
0x5 将镜像推入仓库
5.1 规范化命名
镜像名称要符合规范,即Docker Hub用户名/仓库名:TAG
,如果不符合,可以使用下面命令更改
[root@piao ~]# docker tag 镜像id piaoyun/bt_lnmp:1.0
5.2 登录Docker Hub
[root@piao ~]# docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: piaoyun
Password:
Login Succeeded
[root@piao ~]#
5.3 推送镜像
[root@piao bt_lnmp]# docker push piaoyun/bt_lnmp:1.0
The push refers to a repository [docker.io/piaoyun/bt_lnmp]
5e2b7f135d39: Pushed
877b494a9f30: Layer already exists
1.0: digest: sha256:b80ab9984b1a9cb8b9fc45e1f3a524b6b5fa49e49ac097227e35951169ec74ad size: 742
推送完成后即可在网站上看到,如下图所示。

5.4 退出Docker Hub
[root@piao ~]# docker logout
0x6 使用镜像
6.1 直接从命令行启动
docker run -i -t -d --name bt_lnmp_test -p 20:20 -p 21:21 -p 80:80 -p 443:443 -p 888:888 -p 8888:8888 --privileged=true -v $PWD/www:/www piaoyun/bt_lnmp:1.0 bash /start.sh
6.2 使用docker-composeb部署
新建docker-compose.yml文件,内容如下:
piaoyun:
image: piaoyun/bt_lnmp:1.0
ports:
- 20:20
- 21:21
- 80:80
- 443:443
- 888:888
- 8888:8888
volumes:
- ./www:/www
privileged: true
command: bash /start.sh
container_name: bt_lnmp_test
注意最后一行container_name: bt_lnmp_test
强制指定容器名称为bt_lnmp_test
,而不是使用默认的名称。
使用方法:
[root@piao bt_lnmp]# docker-compose up -d
Creating bt_lnmp_test ... done
0x7 成品
必要文件:https://github.com/piaoyunsoft/bt_lnmp
镜像下载:docker pull piaoyun/bt_lnmp:1.0
发表评论