安裝
- 官網(wǎng)安裝app
- 命令行安裝(但是沒(méi)有圖形界面app)
brew install docker
架構(gòu)
- 鏡像(Image):Docker 鏡像(Image),就相當(dāng)于是一個(gè) root 文件系統(tǒng)。比如官方鏡像ubuntu:16.04 就包含了完整的一套 Ubuntu16.04 最小系統(tǒng)的 root 文件系統(tǒng)。
- 容器(Container):鏡像(Image)和容器(Container)的關(guān)系,就像是面向?qū)ο蟪绦蛟O(shè)計(jì)中的類和實(shí)例一樣,鏡像是靜態(tài)的定義,容器是鏡像運(yùn)行時(shí)的實(shí)體。容器可以被創(chuàng)建、啟動(dòng)、停止、刪除、暫停等。
- 倉(cāng)庫(kù)(Repository):倉(cāng)庫(kù)可看成一個(gè)代碼控制中心,用來(lái)保存鏡像。
- Docker 客戶端(Client):Docker 客戶端通過(guò)命令行或者其他工具使用 Docker SDK (https://docs.docker.com/develop/sdk/) 與 Docker 的守護(hù)進(jìn)程通信。
- Docker 主機(jī)(Host):一個(gè)物理或者虛擬的機(jī)器用于執(zhí)行 Docker 守護(hù)進(jìn)程和容器
配置鏡像加速器
登錄https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
創(chuàng)建賬號(hào),點(diǎn)擊左上角找到容器鏡像服務(wù),選擇鏡像加速器,將加速器地址復(fù)制保存
打開(kāi)docker,選擇設(shè)置,選擇docker engine,將加速器地址復(fù)制進(jìn)去,輸入完之后選擇apply&restart
{
"builder": {
"gc": {
"defaultKeepStorage": "20GB",
"enabled": true
}
},
"experimental": false,
"features": {
"buildkit": true
},
"registry-mirrors": [
"https://mnq9hehw.mirror.aliyuncs.com"
]
}
可以使用命令docker info
檢查有沒(méi)有配置成功文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-464156.html
鏡像相關(guān)命令
- 查看本地鏡像:
docker images
- 搜索某個(gè)鏡像:
docker search <image name>
, egdocker search redis
- 下載某個(gè)鏡像:
docker pull <image name>
,egdocker pull redis
- 下載某個(gè)版本的鏡像:
docker pull <REPOSITORY>:<version>
,具體支持的版本號(hào)需要去hub.docker.com網(wǎng)站查找 - 刪除某個(gè)鏡像:
-
docker rmi <image ID>
, image ID 可通過(guò)docker images
命令查看 -
docker rmi <REPOSITORY>:<TAGS>
,兩個(gè)不同版本的鏡像的image ID相同,此時(shí)可以通過(guò)TAGS刪除
-
- 查看所有鏡像的ID:
docker images -q
- 刪除所有鏡像:
docker rmi `docker images -q`
容器相關(guān)命令
- 運(yùn)行容器:
-
docker run -it --name=<name> <REPOSITORY>:<TAG> /bin/bash
, -i表示容器保持一致運(yùn)行,-t表示給容器分配一個(gè)偽終端,<REPOSITORY>:<TAG>
表示運(yùn)行某鏡像,/bin/bash表示打開(kāi)一個(gè)shell腳本 -
docker run -id --name=<name> <REPOSITORY>:<TAG>
, -d表示后臺(tái)運(yùn)行容器
-
- 退出容器:
exit
,通過(guò)-it創(chuàng)建的容器一經(jīng)退出就自動(dòng)關(guān)閉,-d創(chuàng)建的容器不會(huì)自動(dòng)關(guān)閉 - 查看容器:
docker ps -a
,-a表示查看所有歷史運(yùn)行容器,status為up表示正在運(yùn)行 - 進(jìn)入正在運(yùn)行的容器內(nèi)部:
docker exec -it <NAMES> /bin/bash
- 啟動(dòng)歷史容器:
docker start <NAMES>
- 查看某個(gè)容器的信息:
docker inspect <NAMES>
- 停止正在運(yùn)行的容器:
docker stop <NAMES>
- 刪除容器:
docker rm <NAMES>
- 查看所有容器的ID:
docker ps -aq
- 刪除所有容器:(正在運(yùn)行的容器是不能被刪除的)
docker rm `docker ps -aq`
容器數(shù)據(jù)卷
概念
- 數(shù)據(jù)卷是宿主機(jī)中的一個(gè)目錄或文件
- 當(dāng)容器目錄和數(shù)據(jù)卷目錄綁定后,對(duì)方的修改會(huì)立即同步
- 即使docker容器刪除,宿主機(jī)中的數(shù)據(jù)卷仍然存在,只要再次掛載該數(shù)據(jù)卷,數(shù)據(jù)就可以再次恢復(fù)
- 一個(gè)數(shù)據(jù)卷可以被多個(gè)容器同時(shí)掛載,一個(gè)容器也可以掛載多個(gè)數(shù)據(jù)卷
作用
- 容器數(shù)據(jù)持久化
- 外部機(jī)器和容器間接通信
- 通過(guò)同一個(gè)數(shù)據(jù)卷掛載到兩個(gè)容器上間接實(shí)現(xiàn)兩個(gè)容器之間數(shù)據(jù)交換
配置數(shù)據(jù)卷
- 創(chuàng)建啟動(dòng)容器時(shí),使用-v參數(shù)設(shè)置數(shù)據(jù)卷
- 目錄必須是絕對(duì)路徑
- 如果目錄不存在,會(huì)自動(dòng)創(chuàng)建
- 可以掛載多個(gè)數(shù)據(jù)卷
docker run ... -v 宿主機(jī)目錄(文件):容器內(nèi)目錄(文件) \
-v 宿主機(jī)目錄(文件):容器內(nèi)目錄(文件) \
-v 宿主機(jī)目錄(文件):容器內(nèi)目錄(文件)...
// docker run -it --name=qjl \
-v /opt/project1/:/opt/project_container1 \
-v /opt/project2/:/opt/project_container2 \
mysql:5.0
數(shù)據(jù)卷容器
概念
如果docker內(nèi)有兩個(gè)容器c1、c2,使用容器數(shù)據(jù)卷進(jìn)行容器間的數(shù)據(jù)交換的操作是使這兩個(gè)容器均掛載到同一個(gè)數(shù)據(jù)卷上。
數(shù)據(jù)卷容器就是另一種辦法:創(chuàng)建一個(gè)新的容器c3并掛載到數(shù)據(jù)卷上,再使c1、c2掛載到c3容器上,此時(shí)也就相當(dāng)于c1、c2、c3掛載到同一個(gè)數(shù)據(jù)卷上了文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-464156.html
配置
- 創(chuàng)建啟動(dòng)c3數(shù)據(jù)卷容器,使用-v參數(shù)設(shè)置數(shù)據(jù)卷
docker run -it --name=c3 -v /volume centos:7 /bin/bash
- 創(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
到了這里,關(guān)于docker入門(1)----服務(wù)/鏡像/容器相關(guān)命令的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!