相信不少童鞋都聽說過或者看過別人玩docker(大佬可以無視本文),那麼docker到底是怎麼回事呢,今天我來揭開docker的神祕面紗,看看她的本來面目!
一.什麼是docker
Docker是一個開源的引擎,可以輕鬆的爲任何應用創建一個輕量級的、可移植的、自給自足的容器。開發者在筆記本上編譯測試通過的容器可以批量地在生產環境中部署,包括VMs(虛擬機)、 bare metal、OpenStack 集羣和其他的基礎應用平臺。
docker支持將軟件編譯成一個鏡像,然後在鏡像中對各種軟件做好配置,將鏡像發佈出去,其他使用者可以直接使用這個鏡像把這個鏡像運行起來,運行的這個鏡像稱爲容器,容器啓動是非常快的。
Docker通常用於如下場景:
- web應用的自動化打包和發佈;
- 自動化測試和持續集成、發佈;
- 在服務型環境中部署和調整數據庫或其他的後臺應用;
- 從頭編譯或者擴展現有的OpenShift或Cloud Foundry平臺來搭建自己的PaaS環境
二.爲什麼要使用docker
優勢什麼的就不說了,前人總結的很好,這裏不再贅述,可以參照下面兩篇文章:
三.基礎
1.概念
docker主機(host):安裝了docker程序的機器(docker直接安裝在操作系統之上的)。一個物理或虛擬的機器用於執行Docker 守護進程和容器。
docker客戶端(client):連接docker主機進行操作。客戶端通過命令行或其他工具使用docker。
docker倉庫(Registry):用來保存各種打包好的軟件鏡像。docker倉庫用來保存鏡像。
docker鏡像(Images):打包好的軟件,放在docker倉庫中。
docker容器(Container):鏡像啓動後的實例就是一個docker容器。
2.使用docker步驟
(1).安裝docker
(2).去docker倉庫找到想要安裝軟件對應的鏡像。
(3).使用docker運行這個鏡像,這個鏡像就會生成一個docker容器。
(4).對這個docker容器的啓動停止就是對這個軟件的啓動停止。
四.安裝docker
1.安裝linux
VMware太沉重、VirtualBox-5.1.26-117224-Win.exe,小巧 ,我們這裏使用它。
linux我們用的是CentOS-7-x86_64-DVD-1708.iso
virtualBox的下載和安裝,virtualBox上安裝centos的步驟可以參考這個網址:https://jingyan.baidu.com/article/4dc4084868a1e4c8d946f133.html
當我們在virtualBox上安裝好centos時,可能會連不上網,解決方法參考:https://jingyan.baidu.com/article/20b68a888f71b4796cec62ed.html
上面的方法都是筆者親自試過的,大家可以放心去做。
2.linux上安裝docker
(1).檢查linux內核版本,命令: uname -r ;版本小於3.1,則升級軟件包及內核: yum update
(2).安裝docker,命令:yum install docker
(3).輸入 “y”,確認下載
這裏輸入小寫“y”無效的話,可以輸入大寫的“Y”
(4).安裝好後,啓動docker,命令:systemctl start docker
(5).查看docker版本,命令:docker -v
(6).將docker服務設置爲開機啓動,命令:enable docker (不是必須的)
(7).停止docker,命令:systemctl stop docker
五.常用操作
1.鏡像操作
(1).檢索
作用:檢索docker倉庫裏mysql的鏡像都有哪些
命令:docker search mysql
(2).拉取
作用:把docker鏡像從遠程docker倉庫拉取到本地(相當於下載軟件)
命令:docker pull Image : tag
說明: : tag是可選的,tag表示標籤,多爲軟件的版本,默認是latest
(3).列表
作用:查看所有本地鏡像
命令:docker images
(4).刪除
作用:刪除指定的本地鏡像
命令:docker rmi image-id
參考資料:
docker中文社區http://www.docker.org.cn/book/docker
2.容器操作
軟件鏡像——運行鏡像——產生一個docker容器(正在運行的軟件)
(1).搜索:
命令:docker search tomcat
(2).拉取:
命令:docker pull tomcat
(3).運行:
命令:docker run --name mytomcat -d tomcat:tag
說明:mytomcat 是給這個將要運行的容器起個名稱;tomcat就是拉取的鏡像;
:tag 是這個鏡像的標籤,可以不寫,不寫的話默認爲latest
(4).查看docker中的容器:
命令:docker ps (查看正在運行的容器)
命令:docker ps -a (查看所有的容器)
(5).停止:
命令:docker stop container-name/container-id
說明:docker stop 後面是容器名稱或者容器id
(6).啓動:
命令:docker start container-name/container-id
說明:docker stop 後面是容器名稱或者容器id
(7).刪除:
命令:docker rm container-id
說明:容器要在停止狀態,container-id是容器id
(8).端口映射:
命令:docker run -d -p 外部端口:容器端口
說明:這個外部端口是指虛擬機端口或者主機端口,容器端口指的是,這在運行的這個docker容器的端口
例如:docker run -d -p 8888:8080 tomcat (這裏沒有用--name參數給這個容器重啓名稱)
3.安裝mysql示例
(1).拉取鏡像
docker pull mysql
(2).啓動
錯誤的運行:
docker run --name mysql01 -d mysql
錯誤日誌:
正確的運行:
命令:docker run --name mysql01 -e MYSQL_ROOT_PASSWORD=123456 -d mysql
說明:-e 參數指定 MYSQL_ROOT_PASSWORD的值
加上端口映射再次運行鏡像
命令:docker run --name mysql02 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql
幾個其他高級的操作:
docker run ‐‐name mysql03 ‐v /conf/mysql:/etc/mysql/conf.d ‐e MYSQL_ROOT_PASSWORD=my‐secret‐pw‐d mysql:tag
-v,把主機的/conf/mysql文件夾掛載到 mysqldocker容器的/etc/mysql/conf.d文件夾裏面改mysql的配置文件就只需要把mysql配置文件放在自定義的文件夾下(/conf/mysql)
docker run ‐‐name some‐mysql ‐e MYSQL_ROOT_PASSWORD=my‐secret‐pw ‐d mysql:tag ‐‐character‐set‐server=utf8mb4 ‐‐collation‐server=utf8mb4_unicode_ci
指定mysql的一些配置參數
例如:docker run -p 3307:3306 --name mysql03 -e MYSQL_ROOT_PASSWORD=123456 -d mysql --character-set-erver=utf8mb4 --collation-server=utf8mb4_unicode_ci
(3).測試
當這個mysql容器運行起來以後,我們可以用navicat連接上試一試。
先查看當前linux的IP,輸入: ip addr 命令 ,如下圖是其ip地址:
打開Navicat,連接這個mysql,
ip:172.16.7.76;
port:3306 //在運行鏡像時,做了端口映射
user:root //mysql的root用戶
password:123456 //在運行鏡像時設置的密碼
如下圖:
連接成功後,可以看到如下圖,說明我們在docker中運行的mysql成功了
到這裏我們docker的基礎和簡單應用就說完了,哪裏不對的地方或是有任何問題都可以給我留言哦。