準備好兩個映象
然後建立兩個容器:
docker run --name=
"apachedemo" -p 80:80 -d nimmis/apache-php5
docker run --name mysqldemo -p 3306:3306 -e mysql_root_password=password -d mysql/mysql-server:latest
docker ps 檢視兩個容器的狀態,如果docker ps 沒有說明容器沒有起來。
docker ps 預設檢視的是正在執行的容器。
然後在遊覽器輸入docker 宿主機的ip;docker 安裝環境的ip;
(比如:虛擬機器裡面安裝linux,linux裡面安裝docker ,你要訪問網頁應該輸入linux的ip);
出現如下介面,則表示apache服務安裝沒有問題。
在linux上新建乙個php 檔案,這裡我命名為 demo.php
輸入一下內容。
ip位址根據自己的ip修改。
<?php
header
("content-type: text/html;charset=utf-8");
echo"";
$servername
="192.168.43.227"
;$username
="root"
;$password
="password"
;$dbname
="book"
;$conn
=mysqli_connect
('192.168.10.9'
,'root'
,'root')or
die(
"error:"
.mysqli_connect_error()
);mysqli_select_db
($conn
,'book');
$sql
="select * from student"
;$result
=mysqli_query
($conn
,$sql);
while
($row
=mysqli_fetch_array
($result))
?>
第一次訪問可能會出現一下的錯誤:
這是因為mysql 沒有開啟遠端登入許可權。
我們進入mysql容器修改相應的許可權。
docker exec -it 1ed50ef86354 /bin/bash
docker exec -it 加容器id或者容器名字可以進入docker容器內。
exit 退出容器。
mysql -uroot -ppassword 登入mysql
use mysql;
select user, host from user;
update user set host = '%' where user = 'root';
flush privileges;
順便再建立乙個表
create database book;
use book;
create table student (id int ,name varchar(20));
insert into student values(1,'joy'),(2,'tom'),(3,'james');
再次訪問會出現如下錯誤:
server sent charset unknown to the client. please, report to the developers
這是因為mysql最新版的字元預設字元編碼 utf8mb4,所以我們要設定mysql的預設字符集為老版本的utf8
還是在mysql容器內執行
mysql --help | grep my.cnf
檢視mysql配置檔案的路徑那。
我安裝的mysql-service精簡到了連vi和vim也沒有,所以需要自己手動安裝。用yum安裝就好了。由於沒有配置yum源所以會很慢。
修改/etc/my.cnf
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
collation-server = utf8_unicode_ci
character-set-server = utf8
default_authentication_plugin=mysql_native_password
修改配置檔案後重啟一下mysql 服務。
退出到linux 系統,執行docker restart mysqldemo
再次進入遊覽器,報錯 the server requested authentication method unknown to the client。
是由於使用者身份認證的加密方式不相容導致的,mysql8.0
中預設方式為caching_sha2_password
,引起老版本相容性問題,老版本加密方式為mysql_native_password
。
alter user 'root'@'localhost' identified with mysql_native_password by '你的密碼'
;我們這裡修改為
alter user 『root』@』%』 identified with mysql_native_password by 『password』;
然後再次訪問:
docker部署 docker環境部署mysql
蘇軾 這裡我拉取了tag為5.7的映象 docker pull mysql 5.7因為需要自定義mysql的配置,所以需要乙個配置目錄 因為需要將mysql生成的資料掛載到本地,所以需要乙個資料目錄 建立mysql 資料目錄mkdir p root mysql data 建立配置檔案 touch r...
docker部署部署心得
一 涉及檔案 centos centos7.tar.gz docker中centos映象壓縮包 docker.tar.gz docker 安裝包 jre 8u131 linux x64.rpm 生成cloudlicense映象時要用到 由於找不到openjdk,安裝映象,用這個替代 dockerfi...
Docker 使用Docker部署Node服務
docker 是乙個開源的容器引擎。開發者可以將自己的應用以及依賴打包為乙個可移植的容器,然後發布到 linux 機器上。它類似於乙個輕量級的虛擬機器,極大地方便了使用者在伺服器端部署和管理應用環境。apt install docker.io安裝成功後檢視docker版本 建立package.jso...