https://blog.csdn.net/qq_44858888/article/details/124084408
1.下載docker
下載地址如下:
https://download.docker.com/linux/static/stable/x86_64/
2. 將下載好的docker壓縮文件存放至centos的/usr/local/docker下
3.下載離線安裝工具,并將install.sh和docker.bash放在docker-18.09.0.tgz所在文件夾下
下載地址如下:
https://github.com/Jrohy/docker-install/
4.進入docker文件夾
cd /usr/local/docker
5. 為 install.sh添加執(zhí)行權限
chmod +x install.sh
6. 安裝
./install.sh -f docker-18.09.0.tgz
7. 啟動docker操作
systemctl start docker
8.查看docker狀態(tài)
systemctl status docker
9.設置開機自啟動
systemctl enable docker
10.常用操作
1.禁止開機自啟動
systemctl disable docker
2. 重新啟動Docker服務
systemctl restart docker
3. 查看Docker信息
docker info
4. 查看docker info中具體key的信息,例如:
docker info | grep 'Docker Root Dir:'
5. 停止docker服務
systemctl stop docker
6. Docker鏡像加速
由于國內(nèi)網(wǎng)絡問題,需要配置加速器來加速。修改配置文件 /etc/docker/daemon.json
下面命令直接生成文件 daemon.json莹桅,直接在命令行執(zhí)行即可
cat <<EOF > /etc/docker/daemon.json
{
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"http://hub-mirror.c.163.com"扛拨,
"https://6kx4zyno.mirror.aliyuncs.com"
],
"max-concurrent-downloads": 10,
"log-driver": "json-file",
"log-level": "warn",
"log-opts": {
"max-size": "10m",
"max-file": "3"
},
"data-root": "/var/lib/docker"
}
EOF
補充:在執(zhí)行如上指令時狭握,保證你的登錄用戶為root管理員用戶,并且設置好以后重啟docker服務
11.Docker鏡像操作實例
以hello-word鏡像為例
1.下載鏡像
docker pull hello-world
2. 瀏覽鏡像文件
docker images
3. 查看鏡像詳情
例如:查看一個名為hello-word的鏡像
docker inspect hello-world
4. 查看鏡像歷史
一個鏡像是由多個層(layer)組成的榜晦,那么,我們要如何知道各個層的具體內(nèi)容呢识脆?通過 docker history 命令甸祭,可以列出各個層(layer)的創(chuàng)建信息缕碎,例如:查看hello-word的歷史信息(查看鏡像進行了什么操作,等池户。阎曹。。)
docker history hello-world
5. 導出鏡像文件
鏡像導出(linux系統(tǒng)中的鏡像文件下載到本地-例如window)煞檩,導出后給他人使用
語法:docker save hello-world | gzip >(這里填寫要導出的鏡像名).tar.gz
docker save hello-world | gzip > hello-world.tar.gz
6. 刪除鏡像文件
語法:docker image rm 鏡像名或鏡像id
例如:刪除一個名為hello-word的鏡像
docker image rm hello-world
強制刪除
docker rmi -f busybox:latest
7. 導入鏡像操作
鏡像導入(要在hello-world.tar.gz 文件所在目錄下執(zhí)行這個命令)注意這里的hello-world.tar.gz 文件是我們要導入的鏡像,這里以hello-world.tar.gz 文件為例栅贴。
docker load < hello-world.tar.gz
8. 運行鏡像文件
基于鏡像斟湃,啟動容器運行。
語法:docker run 鏡像名
docker run hello-world
12.Docker容器操作實例
本次以CentOS鏡像為例檐薯,講解容器的基本操作凝赛。
1. 下載鏡像(Image)
通過docker pull指令下載CentOS鏡像,例如
docker pull centos:7
說明坛缕,官方鏡像倉庫地址為https://hub.docker.com/
下載完以后墓猎,查看centos7鏡像文件。
docker images
2. 創(chuàng)建并啟動容器(Container)
基本語法解析:
docker run -it xxxx bash
如果是springboot創(chuàng)建的鏡像啟動方式可參考如下:
docker run -p 8980:8980 --name freedomain -d freedomain
-d:為鏡像名稱
--name:為別名
語法解析
- xxxx - :鏡像名, 或 image id 的前幾位赚楚,
- -it :這是兩個參數(shù)(-i表示交互式操作毙沾, -t 表示終端)
- bash :表示進入操作終端,基于交互式進行相關操作(例如執(zhí)行l(wèi)inux相關指令)宠页。
案例:通過docker啟動運行 centos7鏡像
docker run -it centos:7 bash
3. 查看Docker中的容器(Container)
查看docker運行中的容器(要在宿主機執(zhí)行docker指令)
docker ps
說明,假如在容器中執(zhí)行docker指令會出現(xiàn)如下問題,例如:
查看docker運行中的所有容器
docker ps -a
4. 查看容器日志(logs)信息
查看容器啟動運行日志時左胞,這個指令非常重要寇仓,假如容器沒有啟動,要通過此指令去看一下錯誤日志烤宙。
如下為查看所有已輸出的日志信息
docker container logs 802 #802為自己的容器id(一般寫前三位即可)
查看正在輸出的日志信息
docker logs -f freedomain
說明,查看容器的運行日志時,容器應該處于一種運行狀態(tài).
5. 停止(stop)或重啟(Restart)容器(Container)
停止運行的容器遍烦,代碼如下:
docker container stop 802 #802為容器自己的id
重新啟動容器,代碼如下:
docker container restart 802 #802位容器自己的id
6. 進入(exec)指定容器(Container)
當容器處于運行狀態(tài),要進入容器,可以使用 docker exec 命令躺枕,例如:
docker exec -it 802 bash #802為容器id
說明,假如容器處于一種非運行狀態(tài),此時你執(zhí)行docker exec進入容器會出現(xiàn)如下問題:
7. 從容器(Container)中退出(exit)
假如從宿主機進入了啟動的容器服猪,退出容器需要使用exit指令,例如:
exit
8. 刪除(rm)容器(Container)
假如容器不用了拐云,可執(zhí)行刪除操作罢猪,例如:
docker container rm 802 #802為容器id
說明,假如容器正在運行執(zhí)行刪除,會出現(xiàn)如下問題,例如:
其中,如果刪除運行中的容器慨丐,需要添加 -f 參數(shù)執(zhí)行強制刪除,例如:
docker container rm -f 802 #802為容器id
清理所有處于終止狀態(tài)容器坡脐,例如:
docker container prune
說明,執(zhí)行完這個指令以后,可以通過docker ps -a 再查看容器,看看是否有刪除
9 啟動容器
docker start name
10 設置容器自啟動
1、使用 docker run 命令運行時
增加 --restart=always 參數(shù)即可
2房揭、使用 docker-compose 命令運行時
在 yml 文件中备闲,需要自啟動的 service 下
增加 restart: always 項目即可
3、已運行的容器修改其自啟動策略
執(zhí)行命令:
docker update --restart=always 容器名或容器ID
10 查看docker元數(shù)據(jù)信息 docker inspect
docker inspect
會以 json 格式得到 docker 鏡像/容器的元數(shù)據(jù)捅暴。
如:
docker inspect mysql:5.7
11 docker volumes ls
12查看docker日志
docker logs id
13 重啟某個服務
docker restart freedoservermainsvc