Docker私有仓库、数据卷及端口映射

一、私有仓库

#下载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

mark

三、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

mark

mark

mark

五、容器互联(使用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

mark

总结

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:端口/名称)—>上传/下载

猜你喜欢

转载自blog.csdn.net/Gloomyumenge/article/details/115216728