文章目录
一、私有仓库
#下载registry镜像
docker pull registry
#修改配置文件指定镜像的仓库地址
vim /etc/docker/daemon.json
"insecure-registries": ["192.168.171.8:5000"], #添加本机IP地址
"registry-mirrors": ["https://05vz3np5.mirror.aliyuncs.com"]
systemctl restart docker.service
创建registry容器并开放端口
docker create -it registry /bin/bash
docker ps -a
docker start 7c2612bf42a9
docker run -d -p 5000:5000 -v /data/registry:/tmp/registry registry
'//-p指定端口,一内一外;-v表示挂载,前者是宿主机,后者是容器'
#宿主机的/data/registry自动创建挂载容器中的/tmp/registry
docker run -d -p 5000:5000 -v /data/registry:/tmp/registry registry
#更改标记为192.168.171.8:5000/nginx
docker tag nginx:latest 192.168.171.8:5000/nginx
上传
docker push 192.168.171.7:5000/nginx
获取私有仓库列表
curl -XGET http://192.168.126.70:5000/v2/_catalog
二、Docker数据卷
docker pull centos:7 下载
创建数据卷
docker run -itd -v /data1 -v /data2 --name web1 centos:7 /bin/bash
#-v表示创建数据卷,多个-v可创建多个;--name可给容器自定义名称'
docker exec -it web1 /bin/bash
ls
#查看是否挂载成功
exit
宿主机目录/var/www挂载容器中的/data1
docker run -itd -v /opt/:/data1 --name web2 centos:7 /bin/bash
echo "hello world" > /opt/file
docker exec -it web2 /bin/bash
cat /data1/file
#发现响应文件与内容,表示挂载成功
exit
三、Docker数据卷容器
用于提供数据卷给其他容器挂载
docker run -itd -v /data1 -v /data2 --name test001 centos:7 /bin/bash
新容器挂载数据卷容器web100
docker run -itd --volumes-from test001 --name test002 centos:7 /bin/bash
四、端口映射
启动容器时,如果不指定对应的端口,容器外将无法通过网络来访问容器的内容
Docker 提供端口映射机制来将容器内的服务提供给外部网络访问
docker pull nginx
docker run -d -P nginx:latest 随机端口
docker run -d -p 49280:80 nginx:latest 指定端口
docker ps -a
五、容器互联(使用centos镜像)
docker run -itd -P --name web11 centos:7 /bin/bash
创建并运行容器取名web1,端口号自动映射
docker run -itd -P --name web22 --link web11:web11 centos:7 /bin/bash
创建并运行容器取名web2,链接到web1和其通信
测试容器互联
docker exec -it web22 /bin/bash
ping web11
总结
1、镜像
上传(push) 下载(pull) 打标签(tag)
删除(rmi) 导出(save) 导入(load)
2、容器
创建(create) 进入(exec) 运行(run)
删除(rm) 导出(export) 导入(import)
数据卷-v 数据卷容器 --volumes-from 链接容器 --link 暴露端口 随机-P 指定-p
3、仓库
下载 registry镜像—>运行容器暴露端口5000—>修改daemon.json文件—>重启docker
打标签(IP:端口/名称)—>上传/下载