安裝
安裝是基于centos7環境的
其他環境的安裝也可以看官方文檔
centos安裝文檔
https://docs.docker.com/engine/install/centos/# 如果安裝過Docker 需要解除安裝,如果沒有可以跳過
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
# 安裝yum-utils工具包
yum install -y yum-utils
# 設定yum存儲庫 即從該位址下載下傳Docker
#yum-config-manager --add-repo
https://download.docker.com/linux/centos/docker-ce.repo# 上面是官網位址 由于牆,比較慢 換為aliyun
yum-config-manager --add-repo
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo#安裝
yum install docker-ce docker-ce-cli containerd.io -y
#啟動docker
systemctl start docker
#開機自啟docker 可選指令--now 立即啟動docker --now 相當于 systemctl start docker
systemctl enable docker --now
基本操作
配置鏡像加速
配置Docker阿裡雲鏡像加速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://z3j5f3e3.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
DockerHub
DockerHub是Docker的公共鏡像倉庫,基本上各大軟體的鏡像都在這裡可以找到
https://hub.docker.com/search?type=image找到鏡像後,有對應鏡像的版本和拉取/啟動指令
以nginx為例
常用指令
鏡像
# docker幫助指令
docker --help
# docker 搜尋鏡像 相當于在docker hub上搜尋
docker search
# docker 拉取鏡像 不寫版本号預設latest
docker pull 鏡像名[:版本号]
example:
docker pull nginx = docker pull nginx:latest
# docker 檢視鏡像
docker images
# docker 删除鏡像 不寫版本号預設latest
docker rmi 鏡像名[:版本号]
容器
# docker 啟動容器 -d 背景運作 --name 給容器起個名字(容器的名字不可重複) -p端口映射 --restart=always docker重新開機後繼續啟動該容器 -v 資料挂載
docker run -d --name=[容器名] -p 主機端口:容器端口 -v [主機目錄]:[容器目錄] --restart=always [鏡像id/名字]
# docker 停止容器
docker stop [容器id/名字]
# docker 重新啟動容器
docker start [容器id/名字]
# docker 删除容器
docker rm [容器id/名字]
# docker 更新容器啟動指令 端口無法修改
docker update [容器id] --restart=always
# docker 檢視容器 -a 查詢所有容器 不加-a 預設查詢運作狀态的容器
docker ps
進入容器
docker exec -it [容器id] /bin/bash
将修改後的容器送出為鏡像
# docker 送出鏡像 -a 作者 -m 送出資訊 要打包鏡像的容器id 自定義的鏡像名字:版本
docker commit -a [作者] -m [送出資訊] [容器id] [自定義的鏡像名字:版本]
docker commit -a zhangyao -m "首頁變化" 3b009d818c40 mynginx:v1.0
推送鏡像到dockerHub
dockerhub需要先注冊
并在dockerhub上建立倉庫
輸入倉庫名
# 此處以推動到dockerHub為例,其他私有鏡像庫大同小異
# 登入dockerHub
docker login
# 輸入使用者名/密碼
# docker 打标簽 打标簽的意義在于将本地的鏡像新打一個标簽使其與你建立立的存儲庫的路徑一緻
docker tag local-image:tagname new-repo:tagname
docker tag mynginx:v1.0 zy963613606/nginx:v1.0
# docker 推送
docker push new-repo:tagname
docker push zy963613606/nginx:v1.0
# docker 登出
docker logout
容器相關操作指令
# 檢視docker 日志
docker logs [容器id]
# docker 容器與主控端複制檔案 兩個參數可以互換位置 第一個參數是from 第二個參數是to
docker cp [容器id]:[檔案路徑] [主控端路徑]