本文簡要記錄了在CentOS7中安裝docker的步驟和MYSQL的容器化
Docker
Docker 是一個開源的應用容器引擎,基於 Go 語言 並遵從 Apache2.0 協議開源。
Docker 可以讓開發者打包他們的應用以及依賴包到一個輕量級、可移植的容器中,然後發佈到任何流行的 Linux 機器上,也可以實現虛擬化。
準備docker環境
使用阿里雲安裝docker
- 建立倉庫
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
2. 獲取阿里雲docker
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3. 查看指定版本
yum list docker-ce --showduplicates
可以看到有多種版本的docker選擇安裝
4. 安裝指定版本
yum install -y --setopt=obsoletes=0 \
docker-ce-17.03.2.ce-1.el7.centos.x86_64 \
docker-ce-selinux-17.03.2.ce-1.el7.centos.noarch
我們選擇安裝17.03.2版本:
5. 也可以通過sudo yum install docker-ce
默認安裝最新版,不指定版本號
6. 啓動docker
Start docker service
systemctl enable docker
systemctl start docker
docker version
檢查docker安裝:
運行容器
- 啓動容器:
- 運行ubuntu鏡像:
Docker基本操作
docker images
顯示本地鏡像庫:
docker ps
顯示運行中的容器:
docker ps -a
顯示所有容器
- 繼續運行並進入原容器:
docker --help
獲得更多幫助
MYSQL與容器化
構建鏡像練習
- 嘗試着構建一個docker鏡像,創建一個新目錄並進入,在目錄下編輯dockerfile文件,錄入如下內容:
docker build . -t hello
命令構建鏡像
docker run -it --rm hello -H
啓動鏡像:
使用MYSQL容器
- 啓動服務器:
- 啓動MYSQL客戶端:
docker run -it --net host mysql:5.7 "sh"
mysql -h127.0.0.1 -p3306 -uroot -proot
進入mysql客戶端,順利執行mysql基本操作:
3. 創建卷並掛載:
docker rm $(docker ps -a -q) -f -v
docker volume create mydb
docker run --name mysql2 -e MYSQL_ROOT_PASSWORD=root -v mydb:/var/lib/mysql -d mysql:5.7
並通過客戶端容器鏈接服務器:
容器監控與日誌
docker logs [OPTIONS] CONTAINER
查看容器的日誌:
如:查看進近30分鐘內hello-world鏡像的日誌
2. 檢查docker的狀態:docker info [OPTIONS]
3. docker inspect
查看容器詳細信息:
如:查看mysql容器的信息
過程中的錯誤及解決方案
- 運行某指令時,顯示pid被鎖定
- 解決方法:
殺死佔用的進程,或者直接rm -f /var/run/yum.pid
刪除進程文件
- docker啓動時:
Got permission denied while trying to connect to the Docker daemon
- 問題:沒有把登陸用戶加入進docker用戶組
- 解決方法:
sudo groupadd docker #添加docker用戶組
sudo gpasswd -a $USER docker #將登陸用戶加入到docker用戶組中
newgrp docker #更新用戶組
3. docker-compose與yum對python版本的支持不兼容問題
由於安裝docker-compose需要python2.7的支持,而yum
是不支持python2.7的,所以需要爲yum指定python2.6
yum時出現的錯誤:
# yum
There was a problem importing one of the Python modules
required to run yum. The error leading to this problem was:
No module named yum
... ... ... ...
- 解決方法:
編輯yum配置文件:
# vim /usr/bin/yum
#!/usr/bin/python
# 第一行修改爲 python2.6.6
#!/usr/bin/python2.6.6