一、 docker 基本指令
快速安裝docker
sudo sh -c "$(curl -fsSL https://get.docker.com)" 或 curl -sSL https://get.docker.com/ | sh
sudo usermod -aG docker $USER
第一行用docker官方提供的script快速安裝
第二行將現(xiàn)有的使用者加入docker群組屁奏,否則會(huì)沒有權(quán)限操作docker命令。
記得注銷賬號(hào)重登,以獲取docker操作權(quán)限。
執(zhí)行sudo docker run hello-world
查看是否安裝成功甘耿。
如果出現(xiàn)以下畫面則安裝成功:
常用docker基本指令
1 啟動(dòng)/關(guān)閉 docker服務(wù)
service docker start 或者 systemctl start docker // 啟動(dòng)
service docker stop 或者 systemctl stop docker // 關(guān)閉
2 創(chuàng)建一個(gè)新的容器并運(yùn)行一個(gè)命令
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
常用OPTIONS說明:
-a stdin: 指定標(biāo)準(zhǔn)輸入輸出內(nèi)容類型,可選 STDIN/STDOUT/STDERR 三項(xiàng)竿滨;
-d: 后臺(tái)運(yùn)行容器佳恬,并返回容器ID;
-i: 以交互模式運(yùn)行容器姐呐,通常與 -t 同時(shí)使用殿怜;
-P: 隨機(jī)端口映射典蝌,容器內(nèi)部端口隨機(jī)映射到主機(jī)的高端口;
-p: 指定端口映射曙砂,格式為:主機(jī)(宿主)端口:容器端口;
-t: 為容器重新分配一個(gè)偽輸入終端,通常與 -i 同時(shí)使用骏掀;
-e <環(huán)境變量名>="<值>": 設(shè)置環(huán)境變量鸠澈;
--name="<container-name>": 為容器指定一個(gè)名稱柱告;
例如:
使用docker鏡像nginx:latest以后臺(tái)模式啟動(dòng)一個(gè)容器,并將容器命名為mynginx。
docker run --name mynginx -d nginx:latest
3 只創(chuàng)建而不運(yùn)行容器(選項(xiàng)同option)
docker create [OPTIONS] IMAGE [COMMAND] [ARG...]
4 刪除一個(gè)或多個(gè)容器
docker rm [OPTIONS] CONTAINER [CONTAINER...]
OPTIONS說明:
-f :通過SIGKILL信號(hào)強(qiáng)制刪除一個(gè)運(yùn)行中的容器
-l :移除容器間的網(wǎng)絡(luò)連接笑陈,而非容器本身
-v :-v 刪除與容器關(guān)聯(lián)的卷
例如:
強(qiáng)制刪除容器db01际度、db02
docker rm -f db01 db02
5 在運(yùn)行的容器中執(zhí)行命令
docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
OPTIONS說明:
-d :分離模式: 在后臺(tái)運(yùn)行
-i :即使沒有附加也保持STDIN 打開
-t :分配一個(gè)偽終端
6 查看已有下載鏡像(images)
docker images
7刪除已下載鏡像
docker rmi [OPTIONS] IMAGE [IMAGE...]
OPTIONS說明:
-f :強(qiáng)制刪除;
--no-prune :不移除該鏡像的過程鏡像涵妥,默認(rèn)移除乖菱;
例如:
刪除測試docker安裝成功的hello-world:
docker rmi -f hello-world:latest
二、 使用docker安裝mysql
1 下載最新mysql鏡像
docker pull mysql:latest
2 運(yùn)行容器
docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
部分參數(shù)說明:
mysql-test:容器名
-p 3306:3306 :映射容器服務(wù)的 3306 端口到宿主機(jī)的 3306 端口蓬网,外部主機(jī)可以直接通過 宿主機(jī)ip:3306 訪問到 MySQL 的服務(wù)窒所。
MYSQL_ROOT_PASSWORD=123456:設(shè)置 MySQL 服務(wù) root 用戶的密碼。
3 配置mysql 使用者(user)
??3.1 進(jìn)入容器
docker exec -it mysql-test bash
??3.2 登錄mysql并修改root密碼
mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
??3.3 添加遠(yuǎn)程登錄用戶 --> '用戶名'@'主機(jī)',%表任意都行
CREATE USER '<username>'@'%' IDENTIFIED WITH mysql_native_password BY '<password>';
GRANT ALL PRIVILEGES ON *.* TO '<username>'@'%';
三帆锋、 備份docker中mysql的數(shù)據(jù)
??使用docker安裝mysql可能遇到一個(gè)問題,就是如果不做其他處理,docker容器損壞,那么里面的數(shù)據(jù)就可能丟了再也找不回吵取,所以應(yīng)當(dāng)養(yǎng)成定時(shí)備份的好習(xí)慣。
使用以下指令锯厢,將docker容器中的mysql數(shù)據(jù)備份到宿主主機(jī)指定位置:
docker exec [CONTAINER] //usr/bin/mysqldump -u [USER] --password=[PASSWORD] --routines --triggers test_db > /home/user/test_db_backup.sql
說明:
test_db是docker中mysql的數(shù)據(jù)庫名
/home/user/test_db_backup.sql 備份到宿主主機(jī)的地址和文件名
??將上面指令寫入宿主主機(jī)的cron定時(shí)任務(wù)中就可定時(shí)將docker中mysql數(shù)據(jù)備份到本機(jī)皮官,避免docker損壞數(shù)據(jù)就丟失了。
??以上指令全部親測無誤实辑,有問題可告知捺氢,謝謝。