docker是一个开源的应用容器引擎(沙箱机制,相互隔离)
docker官网:https://www.docker.com/ 下载
1.docker架构
2.配置docker镜像加速器
登录阿里云-->控制台-->产品与服务-->镜像-->镜像加速器--centos


javascript
镜像地址:https://ep2jesd5.mirror.aliyuncs.com
配置:直接复制下面所有内容到终端运行(只能在linux窗口运行,windows请按下面配置)
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://ep2jesd5.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
windows配置镜像:搜索.docker\daemon.json 文件

javascript
{
"builder": {
"gc": {
"defaultKeepStorage": "20GB",
"enabled": true
}
},
"experimental": false,
//修改位置
"registry-mirrors": [
"https://ep2jesd5.mirror.aliyuncs.com"
]
}
3.docker命令
docker命令大全,菜鸟教程
下面容器服务相关命令可以跳过
-----跳过----
首先windows上打开linux命令窗口设置
javascript
运行linux命令窗口:
wsl.exe -d Ubuntu
1.服务相关命令(daemon翻译:守护进程)

javascript
docker服务
启动:systemctl start docker
查看:systemctl status docker
停止:systemctl stop docker
重启:systemctl restart docker
开机启动:systemctl enable docker
-----跳过----
2.镜像相关命令

javascript
查看镜像:docker images
查找镜像:docker search redis
拉取镜像:docker pull redis:5.0 (或者不带:5.0 版本号)
删除镜像:docker rmi 镜像ID 或者 redis:5.0 (rmi: remove image 移除镜像)或者
查看所有镜像id: docker images -q
删除所有镜像: docker rmi `docker images -q`
javascript
//搜索镜像相关版本号发布,比如搜索redis相关版本发布
https://hub.docker.com/

3.docker容器相关命令
javascript
-i :保持容器一直运行,没有客户端连接,也一直运行
-t : 分配终端
-d : 后台运行创建容器,不会立即进入容器
-it:以上操作缩写
--name=容器名称
-a : 是 --all 的缩写,意思是显示所有容器(包括正在运行的和已经停止的)。
/bin/bash :打开脚本
创建容器并进入命令窗口 : docker run -it --name=demo centos:7 /bin/bash
创建容器不会进入命令窗口 : docker run -id --name=demo1 centos:7
查看:ll
退出容器: exit (用it进入,退出容器不会关闭)
查看正在运行的容器: docker ps
进入容器: docker exec -it demo1 /bin/bash
停止某个容器: docker stop demo1
删除容器:docker rm 容器ID/容器名称 (正在运行的容器无法删除)
查看所有容器id: docker ps -aq
删除所有容器:docker rm `docker ps -aq`
查看容器信息:docker inspect demo


4.docker数据卷
0.window终端/linux终端命令转换




1.数据卷概念

2.配置数据卷

javascript
-v :设置容器卷 宿主机目录:容器目录 (目录不存在就会自己创建)
~ :波浪线就代表root
cd :默认进入root (cd ~)
ll :查看当前目录
docker run -it --name=demo -v /root/data:/root/data_container centos:7 /bin/bash
修改为可见的文件:
docker run -it --name=demo -v E:\z_project_file\docker_data:/root/data_container centos:7 /bin/bash
cd : 进入root(~)
ll: 发现创建了data_container
创建空文件:(touch test.txt : linux) (type nul > test.txt :win 会报错,但是创建了)
创建建文件并写内容: echo hello > test.txt (通用)
查看txt内容: cat test.txt (通用)
连接多容器演示:
docker run -it --name=demo1 -v E:\z_project_file\data1:/root/data1 -v E:\z_project_file\data2:/root/data2 -v centos:7
3.数据卷容器


javascript
创建数据卷容器c1
docker run -it --name=c1 -v volumn centos:7
查看详情: docker inspect c1
"Mounts": [
{
"Type": "volume",
"Name": "7b12f2e0b544d0366942de0aea7a70b0e39940f54fc6e286e80a3f3bb7c671be",
"Source": "/var/lib/docker/volumes/7b12f2e0b544d0366942de0aea7a70b0e39940f54fc6e286e80a3f3bb7c671be/_data",
"Destination": "volumn",
"Driver": "local",
"Mode": "",
"RW": true,
"Propagation": ""
}
]
创建c2挂载c1上: docker run -it --name=c2 --volumes-from c1 centos:7
创建c3挂载c1上: docker run -it --name=c3 --volumes-from c1 centos:7
进入c1:cd volumn/
创建 :echo hello > test.txt
查看 :cat test.txt
c2中 :cd volumn/
查看 :ll 发现test.txt文件
