# [Docker]MySQL安裝 ## Docker映像 ### 拉 image ``` D:\Users\00592227>docker pull mysql ``` ### 列 image 列表 ``` D:\Users\00592227>docker image ls ``` 或是 ``` D:\Users\00592227>docker images ``` ## Docker容器 ### 運行mysql容器 ==方式一== ``` D:\Users\00592227>docker run --name mysql -p 3306:3306 --privileged -e MYSQL_ROOT_PASSWORD=00592227 mysql ``` - run : docker 建立 container 並且執行的指令 - --name: 將容器取名為mysql - -p 3306:3306 : 將容器的 3306 端口映射到主機的 3306 端口。 - --privileged: 提升至特權容器。 - -e MYSQL_ROOT_PASSWORD=Dev127336 : 初始化 root 用戶的密碼為00592227。 - root-user:root(root的用戶名稱為root) - 指令最後的mysql:指定要運行的是mysql image ==方式二== ``` docker run --name mysql -p 3306:3306 --privileged -e MYSQL_ROOT_PASSWORD=00592228 -d mysql ``` - -d mysql: 背景執行mysql映像,這樣就不需要再多開一個命令提示字元視窗,可以在同一個視窗繼續打指令。 ### 列出啟動跟未啟動 container ``` D:\Users\00592227>docker ps -a ``` ### 停止 mysql container ``` D:\Users\00592227>docker stop mysql ``` ### 啟動 mysql container ``` D:\Users\00592227>docker start mysql ``` ### 刪除 container ``` D:\Users\00592227>docker rm <container id or name> ``` :::info :bulb: 刪除container並不會將volume(數據捲)一起刪除! 請參考下面的指令。 ::: ### 刪除container同時刪除數據捲 ``` docker rm -v containerId|containerName ``` ### 透過volumeName來刪除數據捲 ``` docker volume rm volumeName ``` - 會嘗試去刪除數據捲,如果該數據捲還被容器使用,那麼將刪除不成功。 ## 進入mysql容器 ### 方式一 - 執行 container mysql 啟動終端機 輸入bash mysql username root paseword 等下一行繼續 - 指令的第一個mysql為container name - `docker exec -it mysql`代表進入mysql容器 - `mysql -u root -p` 使用root權限登入 ``` D:\Users\00592227>docker exec -it mysql mysql -u root -p Enter password: mysql> create database demo; mysql> use demo; mysql> create table employee (EMPLOYEE_ID int primary key, NAME varchar(45), ROLE varchar(45)); mysql> insert into employee (EMPLOYEE_ID,NAME, ROLE) values (92228,'gina', 'PG'); mysql> select * from employee; mysql> exit ``` ### 方式二 - 執行 container mysql 啟動終端機 輸入bash。 - `docker exec -it mysql bash`進入到Linux操作環境。 - `mysql -u root -p`登入mysql ``` D:\Users\00592227>docker exec -it mysql bash bash-4.4# mysql -u root -p mysql> use demo; mysql> select * from employee; mysql> exit bash-4.4# exit ``` ## Docekr數據捲與掛載點 ### 查看數據卷 ``` D:\Users\00592227>docker volume ls ``` ### 查看掛載點 ``` D:\Users\00592227>docker container inspect mysql ``` 看到output後搜尋Mounts,可看到數據捲的Name。 ``` "Mounts"[ { "Type": "volume", "Name": "......", ...... } ] ``` - container.mounts.name 有寫掛載點 ## MySQL常用語法 ### 資料庫/資料表相關 ```sql= -- 新建/刪除 資料庫/資料表 CREATE DATABASE test_db; DROP DATABASE test_db; CREATE TABLE employee ( name VARCHAR(10) NOT NULL, age INT ); DROP TABLE employee; -- 資料表重新命名 RENAME TABLE employee TO employee1; -- 資料庫之間資料表搬移 RANAME TABLE db1.employee TO db2.employee; -- 清空資料表 TRUNCATE TABLE employee; ``` ### 欄位變更 ```sql= -- 增加欄位 ALTER TABLE employee ADD nickname VARCHAR(10); -- 更改欄位資料型別 ALTER TABLE employee MODIFY COLUMN age VARCHAR(3); -- 刪除欄位 ALTER TABLE employee DROP COLUMN age; ``` ###### tags: `Docker`
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up