docker
# 查看支持的版本瞄沙,并安裝
apt-cache madison docker-ce
# 安裝docker
apt-get install docker-ce -y
# 可以指定版本安裝docker
apt-get install docker-ce=<VERSIOn> -y
# 查看docker版本
docker version
# docker服務(wù)命令
# 啟動停止命令
systemctl [參數(shù)] docker
# 參數(shù)詳解
start 開啟服務(wù)
stop 關(guān)閉
restart 重啟
status 狀態(tài)
# 基本目錄
/etc/docker docker的認(rèn)證目錄
/var/lib/docker docker的應(yīng)用目錄
# 1. 搜索hello-world鏡像
docker search hello-world
# 2. 下載hello-world鏡像
docker pull hello-world
docker image pull hello-world
# 3. 查看所有鏡像
dokcer images
dokcer images ls
# 4. 查看hello-world鏡像歷史
docker history hello-world
# 5. 將hello-world:latest鏡像,備份為hello-world:v2.0鏡像
docker tag hehello-world:latest hello-world:v2.0
# 6. 刪除hello-world:v:2.0 鏡像
docker rmi hello-world:2.0
# 7. 清除未被使用的鏡像
docker image prune
# 8. 導(dǎo)出hello-world:latest鏡像
docker save -o hello-world:latest.tar hello-world:latest
# 9. 導(dǎo)入hello-world鏡像
docker load -i hello-world \:latest.tar
# 10. 查看所有容器
docker ps
docker ps -a
# 11. 查看所有的容器編號
docker ps -q
docker ps -aq
# 12. 守護(hù)進(jìn)行啟動NGINX1容器
docker run -d --name nginx1 nginx:latest
# 13. 啟動NGINX1容器
docker start nginx1
# 14. 停止NGINX1容器
docker stop nginx1
docker container stop nginx1
# 15. 刪除NGINX1容器
docker rm nginx1
# 16. 批量刪除正在運行的NGINX容器
docker rm $(docker ps -a) -f
# 17. 創(chuàng)建NGINX容器并進(jìn)入
docker run -it --name nginx nginx:latest /bin/bash
# 18. 重新進(jìn)入NGINX容器
docker exec -it nginx /bin/bash
# 19. 通過NGINX容器創(chuàng)建NGINX:v1.0鏡像
docker commit -m '信息' -a '作者' nginx nginx:v.1.0
# 20. 查看NGINX容器全部信息
docker image inspect nginx:v.1.0
docker container inspect nginx
私有倉庫
-
下載鏡像
registry
docker pull registry
配置私有倉庫(
/etc/docker/daemon.json
)
{"registry-mirrors": ["https://a83970g6.mirror.aliyuncs.com"], "insecure-registries":["47.16.197.178:5000"]}
- 重啟docker
systemctl restart docker
- 創(chuàng)建register容器(關(guān)聯(lián)私有倉庫配置)
docker run -d -p 5000:5000 --name registry:latest
- 先備份鏡像的名字
docker tag ubuntu:latest 47.16.197.178:5000/my_ubuntu
-
推送鏡像到私有倉庫中
docker push 47.16.197.178:5000/my_ubuntu
-
拉取私有倉庫鏡像
docker pull 47.16.197.178:5000/my_ubuntu
?
數(shù)據(jù)卷
- 數(shù)據(jù)卷的作用
- 可以將宿主機中的數(shù)據(jù)和容器中的數(shù)據(jù)進(jìn)行共享
- 創(chuàng)建過程
- 先在宿主機創(chuàng)建test文件夾
- 創(chuàng)建容器和桌面的test文件夾進(jìn)行映射
docker run -it --name my_ubuntu -v ~/Desktop/test:test ubuntu:latest /bin/bash
數(shù)據(jù)卷volumes
- 創(chuàng)建數(shù)據(jù)卷
docker volume create xxx
- 查看數(shù)據(jù)卷
docker volume ls
- 刪除數(shù)據(jù)卷
docker volume rm xxx
- 數(shù)據(jù)共享操作
- 創(chuàng)建容器
my_ubuntu2
和/home
進(jìn)行數(shù)據(jù)共享 docker run -it --name my_ubuntu2 -v meiduo:/home ubuntu:latest /bin/bash
- 創(chuàng)建容器
數(shù)據(jù)卷容器的使用
可以通過數(shù)據(jù)卷容器雕欺,創(chuàng)建新的容器,并將多個容器綁定在一起
操作流程
- 基于
my_ubuntu2
數(shù)據(jù)卷容器創(chuàng)建多個容器docker run -itd --name my_ubuntu3 --volumes-from my_ubuntu2 ubuntu:latest
- 數(shù)據(jù)測試
- 分別進(jìn)入到對應(yīng)的容器中,進(jìn)行數(shù)據(jù)測試即可
端口映射使用
創(chuàng)建nginx
容器的時候掠兄,分配ip
和端口
操作流程
- 創(chuàng)建
nginx1
容器晌纫,指定隨機端口,默認(rèn)的ip
地址是0.0.0.0
docker run -itd --name nginx1 -P nginx:latest
- 創(chuàng)建
nginx2
容器境肾,指定端口6001剔难,默認(rèn)的地址是0.0.0.0
docker run -itd --name nginx2 -p 6001:80 nginx:latest
- 創(chuàng)建
nginx3
容器,指定ip 47.16.197.178
,指定端口6002docker run -itd --name nginx3 -p 47.16.197.178:6002:80 nginx:latest
網(wǎng)絡(luò)模式說明
- 創(chuàng)建
nginx4
容器奥喻,指定host
網(wǎng)絡(luò)模式docker run -itd --name=nginx4 --network=host nginx:latest
-
host
:創(chuàng)建的容器偶宫,與宿主機共享同一個網(wǎng)卡
- 創(chuàng)建
nginx5
容器,指定bridge
網(wǎng)絡(luò)模式docker run -itd --name=nginx5 --network=bridge nginx:latest
-
bridge
:橋接模式衫嵌,只要使用橋接模式創(chuàng)建的容器读宙,網(wǎng)段一樣(類似于:47.16.1.1 47.16.1.2)
network
的使用
可以使用系統(tǒng)中的network
管理網(wǎng)絡(luò)模式
操作流程
- 查看系統(tǒng)中的網(wǎng)絡(luò)模式
docker network ls
- 創(chuàng)建網(wǎng)絡(luò)模式
docker network create --driver bridge bridge_test
- 通過網(wǎng)絡(luò)模式,斷掉其中某個容器的網(wǎng)絡(luò)
docker network disconnect bridge nginx5
- 通過網(wǎng)絡(luò)模式楔绞,重新連接其中某個容器的網(wǎng)絡(luò)
docker network connect bridge nginx5
- 刪除網(wǎng)絡(luò)模式
docker network rm bridge_test