# 登录 docker hub
docker login
# 本地镜像 push 到docker hub
# 仓库名就是docker hub的用户名。
docker push <仓库名>/<镜像名>
# 复制镜像,并打上版本号,相当于GitHub的fork
docker tag <仓库名(docker.io可以省略)>/<镜像名> <仓库名>/<镜像名>:版本号
# 下载镜像到本地,一般都是用官方的镜像,所以我以后就把仓库名省了
# alpine版本的镜像比较小巧灵活,我喜欢
docker pull <镜像名>
# 查询镜像。以后用image代替镜像名
docker sreach <image>
# 删除容器,运行时失败
docker rm <image>
# 强删容器
docker rm -f <image>
# 运行的容器
docker ps
# 所有容器
docker ps -a
# 创建私库,直接使用registry镜像,run就行
docker pull registry
docker run -d --name reg -p 5000:5000 registry
# tag hello镜像
docker tag hello ip:5000/hello:1.0
# 推到私库
docker push ip:5000/hello
# 查询私有仓库(直接浏览器访问就行)
curl http://ip:5000/v2/_catalog
# 查询hello镜像有哪些版本
curl http://ip:5000/ve/hello/tags/list
# 挂载目录
# docker是个服务,不稳定,不应该负责持久化,不应该关心历史数据,不应该有历史负担,一个容器停掉就应该--rm直接删除,下次启动就应该直接run
# 所以容器不关心数据,数据就应该放在宿主机上,所以就应该挂载目录到容器
# 宿主机/opt/data 挂载到容器 /opt/data
# 所以mysql数据文件一定要存到宿主机上
docker run --name cent -v /opt/data:/opt/data centos
# 共享容器cent的共享文件
docker run --name cent2 --volumes-from cent centos
配置
// 容器 ip 的网段
"bip": "172.17.0.1/24",
// 换源
"registry-mirrors": ["https://registry.docker-cn.com"],
// 可以使用 http 的请求,默认只能使用 https
"insecure-registries": ["ip:5000"]