1、拉取基礎鏡象
docker pull centos:7
2、檢視鏡象
[root@kvm108 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/centos 7 5e35e350aded 5 months ago 203 MB
3、建立容器
docker run --privileged -it -p 8080:80 -d 5e35e350aded /usr/sbin/init
# --privileged root權限
# -d 5e35e350aded 鏡像 ID
# -p 8080:80 端口映射,後面要裝nginx
4、檢視容器
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
80e052bb4c83 5e35e350aded "/usr/sbin/init" 7 seconds ago Up 6 seconds 0.0.0.0:8080->80/tcp pensive_albattani
5、進入容器
docker exec -it 80e052bb4c83 /bin/bash
6、安裝 Nginx
# 配置 nginx yum 源
vi /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
# 安裝
yum install nginx -y
# 啟動
systemctl start nginx
# 成功通路
curl http://localhost
7、安裝 PHP
# 安裝 相關
yum install epel-release -y
rpm -ivh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
# 安裝 PHP
yum install php71w php71w-fpm \
php71w-cli php71w-common php71w-devel php71w-gd \
php71w-pdo php71w-mysql php71w-mbstring php71w-bcmath \
php71w-pecl-redis
# 啟動
systemctl start php-fpm
# 修改配置檔案
vi /etc/nginx/conf.d/default.conf
server {
listen 80;
server_name localhost;
root /opt/www;
index index.php index.html index.htm;
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
# 測試頁
echo "<?php phpinfo(); ?>" > /opt/www/info.php
# 成功通路
curl http://localhost/info.php
8、安裝 MySQL
wget http://repo.mysql.com/mysql57-community-release-el7-9.noarch.rpm
rpm -ivh mysql-community-release-el6-5.noarch.rpm
# 安裝
yum install mysql-community-server.x86_64
# 啟動
systemctl start mysqld
# vi /opt/www/conn.php
<?php
$servername = "127.0.0.1";
$username = "root";
$password = "Abc@123456";
$conn = mysqli_connect($servername, $username, $password);
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
echo "success"
?>
9、通過容器建構鏡象
# 檢視鏡象
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
80e052bb4c83 5e35e350aded "/usr/sbin/init" 2 hours ago Up 2 hours 0.0.0.0:8080->80/tcp pensive_albattani
# 建構鏡象
docker commit 80e052bb4c83 lnmp
# 80e052bb4c83 容器名
# lnmp 鏡象名
10、檢視鏡象
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
lnmp latest 0448509551fc 53 seconds ago 1.56 GB
docker.io/centos 7 5e35e350aded 5 months ago 203 MB
docker save -o lnmp.tar lnmp
# 檢視
[root@kvm113 ~]# ll
-rw------- 1 root root 376077312 4月 27 17:14 lnmp.tar
[root@vm73 ~]# scp [email protected]:/root/lnmp.tar /home/
# 檢視
[root@vm73 ~]# ll /home/
-rw------- 1 root root 376077312 4月 27 17:19 lnmp.tar
# 加載
[root@vm73 ~]# docker load -i /home/lnmp.tar
# 檢視鏡象
[root@vm73 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
lnmp latest 947680f32a52 39 minutes ago 365MB
# 運作容器
docker run --name lnmp -it -d lnmp /bin/bash
# 進入容器
[root@vm73 ~]# docker exec -it lnmp /bin/bash