如何安装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

你可能感兴趣的文章

评论区

发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。