1盔然、docker 安裝
yum 包更新到最新
yum update
安裝需要的軟件包挖滤,yum-util 提供 yum-config-manager 功能浪南,另外兩個(gè)是 devicemapper 驅(qū)動依賴的
yum install -y yum-utils device-mapper-persistent-data lvm2
設(shè)置 yum 源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
安裝 docker 晚缩,出現(xiàn)輸入的界面都按 y
yum install -y docker-ce
查看 docker 版本尾膊,驗(yàn)證是否安裝成功
docker -v
2、docker 架構(gòu)
鏡像(Image)
:Docker鏡像荞彼,就相當(dāng)于一個(gè) root 文件系統(tǒng)冈敛,比如官方鏡像 ubuntu:16.04 就包含了完整的一套 ubuntu 16.04 最小系統(tǒng)的 root 文件系統(tǒng)。容器(Container)
:鏡像(Image)和容器(Container)的關(guān)系鸣皂,就像是面向?qū)ο蟪绦蛟O(shè)計(jì)中的類和對象一樣,鏡像是靜態(tài)的定義寞缝,容器是鏡像運(yùn)行時(shí)的實(shí)體癌压。容器可以被創(chuàng)建、啟動荆陆、停止滩届、暫停等。倉庫(Repository)
:倉庫可看成一個(gè)代碼控制中心被啼,用來保存鏡像帜消。
3、配置 Docker 鏡像加速器
默認(rèn)情況下浓体,將來從docker.hub(https://hub.docker.com/)上下載 docker 鏡像泡挺,太慢。一般都會配置鏡像加速器命浴。
// ustc:https://docker.mirrors.ustc.edu.cn
// 網(wǎng)易:https://hub-mirror.c.163.com/
// 阿里云:https://<你的ID>.mirror.aliyuncs.com (建議使用娄猫,登錄阿里云獲取)
// 七牛云加速器:https://reg-mirror.qiniu.com
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://<你的ID>.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
4生闲、docker 服務(wù)相關(guān)命令
啟動 docker 服務(wù)
systemctl start docker
停止 docker 服務(wù)
systemctl stop docker
重啟 docker 服務(wù)
systemctl restart docker
查看 docker 服務(wù)狀態(tài)
systemctl status docker
開機(jī)啟動 docker 服務(wù)
systemctl enable docker
5媳溺、docker 鏡像相關(guān)命令
查看鏡像
docker images
docker images -q (獲取全部鏡像id)
搜索鏡像
docker search [鏡像名稱,如:redis]
拉取鏡像
docker pull [鏡像名稱跪腹,如:redis](部件版本號褂删,默認(rèn)拉取最新版本。指定版本:Redis:3.0冲茸⊥头В可在:hub.docker.com/ 查詢)
刪除鏡像
// 刪除指定鏡像
docker rmi [鏡像ID | 鏡像名稱:tag]
// 刪除全部鏡像
docker rmi `docker image -q`
6缅帘、docker 容器相關(guān)命令
查看容器
docker ps // 查看正在運(yùn)行的容器
docker ps -a // 查看所有容器
創(chuàng)建容器
// 創(chuàng)建并啟動容器
docker run [參數(shù)]
參數(shù)說明:
-i
:保持容器運(yùn)行,通常與 -t 同時(shí)使用难衰。加入 it 這兩個(gè)參數(shù)以后钦无,容器創(chuàng)建后自動進(jìn)入容器中,退出容器后盖袭,容器自動關(guān)閉失暂。
-t
:為容器重新分配一個(gè)偽輸入終端,通常與 -i 同時(shí)使用鳄虱。
-d
:以守護(hù)(后臺)模式運(yùn)行容器弟塞。創(chuàng)建一個(gè)容器在后臺運(yùn)行,需要使用 docker exec 進(jìn)入容器拙已,退出后决记,容器不會關(guān)閉。
-it
:創(chuàng)建的容器一般稱為交互式容器倍踪,-id:創(chuàng)建的容器一般稱為守護(hù)時(shí)容器系宫。
--name
:為創(chuàng)建的容器命名
例子,如:
docker run -it --name=c1 centos:7 /bin/bash
i
:一直運(yùn)行建车;
t
:分配終端扩借,輸入命令;
d
:后臺運(yùn)行創(chuàng)建容器
name
:給容器起名字缤至;
7
:指定的版本潮罪;
/bin/bash
:進(jìn)入容器后的初始化指令
exit
: 退出容器,會關(guān)閉容器
進(jìn)入容器
// 進(jìn)入已運(yùn)行的容器 c1
docker exec -it c1 /bin/bash
啟動容器
docker start c2
// c2:容器名稱
停止容器
docker stop c2
// c2:容器名稱
刪除容器
docker rm [容器id 或 容器名稱]
查看容器信息
docker inspect c2
7凄杯、Docker 容器的數(shù)據(jù)卷
數(shù)據(jù)卷的概念及作用
思考:
1错洁、Docker 容器刪除后,在容器中的數(shù)據(jù)還在嗎戒突?
答:可保存在數(shù)據(jù)卷中
2、Docker 容器和外部的機(jī)器可以直接交換文件嗎描睦?
答:不能
3膊存、容器之間想要進(jìn)行數(shù)據(jù)交互?
答:可通過數(shù)據(jù)卷
7.1忱叭、數(shù)據(jù)卷:
- 數(shù)據(jù)卷是宿主機(jī)的一個(gè)目錄或文件
- 當(dāng)容器目錄和數(shù)據(jù)卷目錄綁定后隔崎,對方的修改會立即同步
- 一個(gè)數(shù)據(jù)卷可以被多個(gè)容器同時(shí)掛載
- 一個(gè)容器也可以掛載多個(gè)數(shù)據(jù)卷
7.2、數(shù)據(jù)卷的作用:
- 容器數(shù)據(jù)持久化
- 外部機(jī)器和容器間接通信
- 容器之間數(shù)據(jù)交換
7.3韵丑、配置數(shù)據(jù)卷
創(chuàng)建啟動容器時(shí)爵卒,使用 -v
參數(shù)設(shè)置數(shù)據(jù)卷
// docker run ... -v 宿主機(jī)目錄(文件):容器內(nèi)目錄(文件) ...(多個(gè)數(shù)據(jù)卷:多個(gè) -v)
docker run -it --name=c2 -v /root/data:/root/data_container redis:5.0.9 /bin/bash
注意事項(xiàng):
- 目錄必須是絕對路徑
- 如果目錄不存在,會自動創(chuàng)建
- 可以掛在多個(gè)數(shù)據(jù)卷
7.4撵彻、配置數(shù)據(jù)卷容器
多容器進(jìn)行數(shù)據(jù)交互
1钓株、多個(gè)容器掛載同一個(gè)數(shù)據(jù)卷
2实牡、數(shù)據(jù)卷容器
1、創(chuàng)建啟動 c3 數(shù)據(jù)卷容器轴合,使用 -v
參數(shù)設(shè)置數(shù)據(jù)卷
docker run -it --name=c3 -v /volume centos:7 /bin/bash
// /volume:容器目錄
2创坞、創(chuàng)建啟動 c1、c2 容器受葛,使用 --volumes-from
參數(shù)設(shè)置數(shù)據(jù)卷
docker run -it --name=c1 --volumes-from c3 centos:7 /bin/bash
docker run -it --name=c2 --volumes-from c3 centos:7 /bin/bash