docker常用命令
0. 上传下载
docker search 192.168.2.55:5000/ //查询
docker pull 192.168.2.55:5000/ubuntu //拉取镜像
docker push 192.168.2.55:5000/ubuntu //上传镜像
使用国内mirror镜像加速:在/etc/sysconfig/docker的options中添加--registry-mirror=镜像地址
,然后重启docker
1. 启动和终止
docker run -d 192.168.2.55:5000/rabbitmq //通过镜像创建容器然后启动, -d从后台启动
docker start CONTAINER_ID //启动已停止的容器
docker attach CONTAINER_ID //进入-d后台启动的容器,但是多个窗口进入同一个容器时,其中一个阻塞所有窗口都会阻塞,所以使用下面的命令更好
docker exec -it CONTAINER_ID /bin/bash
docker stop CONTAINER_ID //停止容器
docker rmi //移除不要的镜像
docker rm CONTAINER_ID //移除处于终止状态的容器
docker rm $(docker ps -a -q) //清理所有处于终止状态的容器
2. 存出载入
docker save -o xxx.tar IMAGE //存出镜像到xxx.tar
docker load -i xxx.tar //从xxx.tar载入镜像
docker export ID > NAME.tar //导出容器快照
docker import URL REPO //导入容器快照
//load和import都可导入,但是快照将丢弃所有的历史记录和元数据,而镜像将保存完整记录,体积也要大些
3. 数据卷
-
-v
挂载数据卷,特殊的目录,容器间共享数据,备份/恢复/迁移 - 关于数据卷容器:数据容器的概念已经过时了。这是在没有docker volume的时代的东西,那个时候卷是匿名的,所以要指定某个卷,就必须连带指定其挂载容器。所以用—volumes_from的的形式来挂载某些卷。现在不需要,定义命名卷,直接挂就行,不需要额外再去建立个傻容器。
4. 网络
1) 启动容器的时候指定端口
-p ip:hostPort:containerPort | ip::containerPort | hostPort:containerPort
-P大写 会随机49000~49900一个到容器内部开放的端口
docker port //查看当前镜像映射的端口
2) 容器互联(安全)
启动时通过别名连接,启动时以--name
为容器标记名字,--link
连接。仅在单台主机使用
其实:是在连接者的path和hosts中添加了被连接者的ip 端口等
3) docker的几种网络模式
- bridge: 默认方式
- none:无网络,需用户自定义
- host:共享主机网络
- container:容器间网桥复用
- overlay:性能损耗?
5. 私有仓库
拉取Docker hub上面的registry镜像,然后在本地启动并映射出端口即可,验证是否搭建成功:
[root@localhost ~]#
curl 127.0.0.1:5000/v1/search
curl 139.168.2.55:5000/v2/_catalog
//输出:
{"num_results": 1, "query": "", "results": [{"description": "", "name": "library/ssh"}]}
客户端访问私有仓库时需要添加http支持:
[root@localhost ~]# vim /etc/sysconfig/docker
//修改此行
OPTIONS='--selinux-enabled --insecure-registry 192.168.2.55:5000'
[root@localhost ~]# service docker restart
Redirecting to /bin/systemctl restart docker.service
清除私有仓库镜像:
curl -X DELETE http://192.168.2.55:5000/v1/repositories/centos/tags/latest
实际上,物理上叠加的镜像层是不会删除的,就是说通过这个url删除的只是对应的镜像信息,而不是实际的镜像。目前只有使用一些第三方脚本工具来删除真正的镜像:
私有库版本v2可以参考 https://github.com/burnettk/delete-docker-registry-image
7. 创建镜像
8. 常见错误
docker daemon 无法启动(删除前记得备份数据哦)
rm -rf /var/lib/docker/*
找不到配置文件(v1.11.0)
参考:http://www.itnpc.com/news/web/145083113731628.html