雖然已經安裝了docker好久了,但在之前都沒有認真的去學習使用過,只是大概的瞭解了一下原理就放下無論了,在本週的項目中,潘老師要求咱們使用docker來使用數據庫,趁此機會,總算是成功的掌握了docker的基本用法。mysql
什麼是docker
Docker 屬於 Linux 容器的一種封裝,提供簡單易用的容器使用接口。它是目前最流行的 Linux 容器解決方案。
Docker 將應用程序與該程序的依賴,打包在一個文件裏面。運行這個文件,就會生成一個虛擬容器。
程序在這個虛擬容器裏運行,就好像在真實的物理機上運行同樣。有了 Docker,就不用擔憂環境問題。linux
整體來講,Docker 的接口至關簡單,用戶能夠方便地建立和使用容器,把本身的應用放入容器。容器還能夠進行版本管理、複製、分享、修改,就像管理普通的代碼同樣。
上面的解釋引自阮一峯的博客,就個人理解來講docker就是一個特別輕量級的虛擬機,而後以端口映射的方式讓本機訪問它的應用程序,從而避免在本機進行繁瑣的開發環境配置。sql
docker必知必會
下面是使用docker過程當中必用的一些命令,放到這裏固然不是由於他們容易記,而是爲了之後方便查閱。docker
固然要記住下面這些也不難,經過後面的實戰示例再加上一兩次本身的熟悉基本就能記住了。數據庫
docker help 查看幫助,help應該是全部命令行程序最重要的命令了
docker pull 從Docker Hub中拉取或者更新指定鏡像。
docker run
-d 標識是讓 docker 容器在後臺運行。
-p 標識通知 Docker 將容器內部使用的網絡端口映射到咱們使用的主機上。
-it 使用交互模式
--name 定義一個容器的名字,若是在執行docker run時沒有指定Name,那麼deamon會自動生成一個隨機數字符串當作UUID。
-e 設置環境變量,或者覆蓋已存在的環境變量。
–link 鏈接運行的容器
例如:docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password -d mysql/mysql-server:latestbash
含義:容器的名字爲mysql,將容器的3306端口映射到本機的3306端口,mysql數據庫的密碼爲password ,運行的鏡像爲mysql/mysql-server:latest網絡
docker ps
-a 查看已經建立的容器
-s 查看已經啓動的容器
docker start con_name 啓動容器名爲con_name的容器。
docker stop con_name 中止容器名爲con_name的容器。
docker rm con_name 刪除容器名爲con_name的容器。
docker rmi img_name 刪除鏡像名爲img_name的鏡像。
docker exec -it con_name bash 以bash啓動該容器
在docker中使用mysql
接下來我將會在docker中新建並啓動一個mysql容器,而後以本地訪問。學習
拉取官方鏡像
docker pull mysql:5.7.21
建立一個容器並運行
docker run --name mysql -p 3309:3306 -e MYSQL_ROOT_PASSWORD=test -d mysql:5.7.21
容器的名字爲mysql,將容器的3306端口映射到本機的3309端口,mysql數據庫的密碼爲test ,容器在後臺運行,運行的鏡像爲mysql:5.7.21
查看一下容器的運行狀態
docker ps
clipboard.png命令行
本地訪問試試
clipboard.pngserver
clipboard.png
沒有任何問題
想要直接對容器進行操做?
使用下面的命令就能夠了
docker run -it --link mysql:mysql --rm mysql:5.7.21 sh -c 'exec mysql -h"$MYSQL_PORT_3306_TCP_ADDR" -p'
clipboard.png
這就直接進入了容器的mysql中。
黃庭祥教了我另外一個方法,能夠理解爲上一步方法的分步執行
首先進入容器
docker exec -it mysql bash
clipboard.png
能夠發現這個容器和咱們的linux基本同樣,各類基礎的命令都能執行
在容器中啓動mysql
mysql -uroot -p -h localhost
clipboard.png
參考文章docker下的Mysql鏡像的使用方法使用docker的mysql鏡像Docker 入門教程