Docker安裝
Docker提供了兩個版本:社區(qū)版(CE)和企業(yè)版(EE)。
操作系統(tǒng)要求
以Centos7為例,且Docker要求操作系統(tǒng)必須為64位,且centos內(nèi)核版本為3.1及以上。
查看系統(tǒng)內(nèi)核版本信息:uname-r
一、準備
卸載舊版本:
卸載后將保留/var/lib/docker的內(nèi)容(鏡像、容器、存儲卷和網(wǎng)絡等)。
1.安裝依賴軟件包
2.設置yum源
3.更新yum軟件包索引
二、安裝
安裝最新版本docker-ce(社區(qū)版)
uname-r
卸載舊版本:
yum remove docker docker-common docker-selinux docker-engine
yum remove docker-ce
卸載后將保留/var/lib/docker的內(nèi)容(鏡像、容器、存儲卷和網(wǎng)絡等)。
rm-rf/var/lib/docker
1.安裝依賴軟件包
yum install-y yum-utils device-mapper-persistent-data lvm2
#安裝前可查看device-mapper-persistent-data和lvm2是否已經(jīng)安裝
rpm-qa|grep device-mapper-persistent-data
rpm-qa|grep lvm2
2.設置yum源
yum-config-manager--add-repo https://download.docker.com/linux/centos/docker-ce.repo
3.更新yum軟件包索引
yum makecache fast
安裝
安裝最新版本docker-ce
yum install docker-ce-y
#安裝指定版本docker-ce可使用以下命令查看
yum list docker-ce.x86_64--showduplicates|sort-r
#安裝完成之后可以使用命令查看
docker version
三、配置鏡像加速
這里使用阿里云的免費鏡像加速服務,也可以使用其他如時速云、網(wǎng)易云等
1.注冊登錄開通阿里云容器鏡像服務
2.查看控制臺,找到鏡像加速器并復制自己的地址
3.找到/etc/docker目錄下的daemon.json文件,沒有則直接vi daemon.json
4.加入以下配置
#填寫自己的加速器地址
{
"registry-mirrors":["https://zfzbet67.mirror.aliyuncs.com"]
}
5.通知systemd重載此配置文件;
systemctl daemon-reload
6.重啟docker服務
systemctl restart docker
Docker常用操作
輸入docker可以查看Docker的命令用法,輸入docker COMMAND--help查看指定命令詳細用法。
鏡像常用操作
查找鏡像:
docker search關鍵詞
#搜索docker hub網(wǎng)站鏡像的詳細信息
下載鏡像:
docker pull鏡像名:TAG#Tag表示版本,有些鏡像的版本顯示latest,為最新版本
查看鏡像:
docker images#查看本地所有鏡像
刪除鏡像:
docker rmi-f鏡像ID或者鏡像名:TA#刪除指定本地鏡像#-f表示強制刪除
獲取元信息:
docker inspect鏡像ID或者鏡像名:TA#獲取鏡像的元信息,詳細信息
實例:mysql
docker pull mysql:5.7
#創(chuàng)建三個要掛載的目錄
mkdir-p/my/mysql/conf
mkdir-p/my/mysql/data
mkdir-p/my/mysql/logs
#復制文件并修改字符
docker cp mysql:/etc/mysql/mysql.conf.d/mysqld.cnf/my/mysql/conf/
vi/my/mysql/conf/mysqld.conf
character-set-server=utf8
#最終啟動命令
docker run
--name mysql
-p 3306:3306
-v/my/mysql/conf:/etc/mysql/mysql.conf.d/
-v/my/mysql/data:/var/lib/mysql
-v/my/mysql/logs:/logs
-e MYSQL_ROOT_PASSWORD=root
-d mysql:5.7
注:
國外鏡像市場:
Docker Hub
Quay
國內(nèi)鏡像市場:
阿里云
網(wǎng)易云
時速云
DaoCloud
此次使用的mysql鏡像地址:
https://hub.daocloud.io/repos/fa51c1d6-9dc2-49d9-91ac-4bbfc24a1bda
1.啟動并創(chuàng)建docker的mysql鏡像的實例
在啟動并創(chuàng)建docker的mysql鏡像的實例時,要指定好docker內(nèi)部端口號和宿主端口號的映射,創(chuàng)建鏡像命令會自動開放docker鏡像的3306端口并暴露出去,因此需要手動開放宿主機防火墻對外端口
docker run--name docker-mysql-p 3307:3306-e MYSQL_ROOT_PASSWORD=NARUTO1-d daocloud.io/library/mysql:5.7.4
注:docker-mysql為指定的該鏡像的名稱
NARUTO1是指定的root用戶密碼
daocloud.io/library/mysql:5.7.4其中daocloud.io/library/mysql為本地mysql鏡像路徑,5.7.4為本地mysql鏡像的tag
2.開放宿主機防火墻對外端口
操作步驟:
1、登陸到linux系統(tǒng)
2、輸入防火墻開放端口命令:firewall-cmd--zone=public--add-port=8080/tcp--permanent
3、刷新防火墻:firewall-cmd--reload
*注意:--add-port=后面接需要開放的端口
linux如何查看某個端口是否開放
1.你可以使用lsof命令來查看某一端口是否開放。查看端口可以這樣來使用,我就以80端口為例:
lsof-i:80
或者
lsof-i:22
如果有顯示說明已經(jīng)開放了,如果沒有顯示說明沒有開放
2.netstat-aptn執(zhí)行看看,是否監(jiān)聽在0.0.0.0:3306
3.
netstat-nupl(UDP類型的端口)
netstat-ntpl(TCP類型的端口)
例如netstat-ntpl|grep 3306 netstat-ntpl|grep 3307
4.telnet ip端口號方式測試遠程主機端口是否打開
.docker ps-a查看在運行的
docker exec-it docker-mysql bash進入容器內(nèi)部docker-mysql是上邊運行時為容器取的別名也可以用id替代
mysql-u root-p然后直接輸入密碼即可密碼是在運行時設置的
grant all privileges on*.*to'root' '%';給用于授予權限(登錄mysql之后執(zhí)行)
flush privileges;刷新權限
登錄