Docek是一種容器技術。容器是一種輕量級、可移植、自打包的軟件技術,使應用程序能夠在幾乎任何地方以相同的方式運行。html
使用者能夠在筆記本上建立並測試好的容器,無需任何修改就可以在生產系統的虛擬機、物理服務器或公有云主機上運行。mysql
安裝docker會用到一下命令linux
//更新apt-get apt-get update //安裝docker apt-get install docker.io //配置加速器 tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": [ "https://dockerhub.azk8s.cn", "https://mirror.ccs.tencentyun.com", "https://ytji6dx6.mirror.aliyuncs.com" ] } EOF //重啓daemon systemctl daemon-reload //重啓docker systemctl restart docker
安裝截圖以下ios
docker run -p 3306:3306 --name mymysql -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6
說明:git
docker run
:docker從鏡像啓動一個容器命令github
--name
:這是docker run命令的參數,給要啓動的容器起個名字sql
-p
:端口映射,前面的是宿主端口號,後面的是容器端口號docker
-v
:掛載宿主機目錄到鏡容器裏,前面的是宿主機目錄,後面的是容器目錄,那麼後面的目錄爲何是/var/lib/mysql呢?執行docker inspect -f {{.Config.Volumes}} bob-mysql
就能夠看到了數據庫
-e
——指的是環境變量,在啓動MySQL鏡像時,能夠傳入一個或多個環境變量修改MySQL實例的配置。這裏必定要注意的是啓動容器的數據目錄已經包含了數據庫,這時環境變量就不起做用了。json
MySQL鏡像支持一下環境變量
MYSQL_ROOT_PASSWORD
—— 設置MySQL root用戶的密碼
MYSQL_DATABASE
—— 指定在鏡像啓動時建立的數據庫名稱,若是同時指定了MYSQL_USER
,MYSQL_PASSWORD
,則會授予該用戶對這個數據庫ALL的權限(GRANT ALL)
MYSQL_USER
,MYSQL_PASSWORD
—— 建立一個用戶並設置它的密碼
MYSQL_ALLOW_EMPTY_PASSWORD
—— 設置爲yes
容許容器啓動時root用戶密碼留空
MYSQL_RANDOM_ROOT_PASSWORD
—— 爲root用戶生成隨機密碼(使用pwgen
)
MYSQL_ONETIME_PASSWORD
—— 設置root用戶初始化完後過時,強制登陸時修改密碼。注意這個功能只支持MySQL 5.6+
docker version
docker pull mysql:5.6
說明:
mysql:5.6
是鏡像名稱和版本號,如果不肯定版本,可使用docker pull mysql
則直接下載最新的版本docker image ls
docker rmi mysql
docker ps
說明:
docker ps -a
:顯示全部的容器
docker ps
:顯示運行的容器
更多命令使用方法docker ps --help
docker exec -it id /bin/bash
# 退出容器 docker logs -f id
docker stop/start id
docker rm 容器id
docker login
# 使用Dockerfile建立名爲 yucy/mysql的鏡像 docker build --rm=true -t yucy/mysql
# 將鏡像ubuntu:16.04標記爲 yucy/ubuntu:V1 鏡像 docker tag ubuntu:16.04 yucy/ubuntu:V1
docker push 註冊用戶名/鏡像名
第一次安裝virtualbox的時候,沒有設置虛擬電腦的保存路徑,致使C盤爆滿,具體可參考Docker學習:virtualbox安裝和配置,下面是另一個很糾結的問題,直到今天才解決!!!
第一次使用docker pull mysql
時,一直提示no matching manifest for unknown in the manifest list entries
在網上查找了不少資料,有解決方法是windows上配置daemon.json
中增長配置"experimental": true
,但是本機是linux虛擬機,在json文件中增長了這個配置選項,再次pull
鏡像還是出錯。
後來反覆查看虛擬機ios文件和docker
的安裝要求,發現是虛擬機的版本問題,從新安裝ubuntu-16.04.6-server-amd64的虛擬機,問題圓滿解決🌛。出現這個文件主要是由於虛擬機安裝時的版本選擇的是64位的,但是加載的iso文件倒是32位的,因此出現了上面的問題。