常用docker命令
2017-05-31 19:03
417 查看
1:镜像文件导入导出
docker save -o xxx.tar myrepo/xxx:latest --- 导出镜像到本地文件
docker load -i xxx.tar --- 将本地文件导入到本地镜像仓库
2:网络管理
docker run -P:随机分配端口号
docker run -p 5000:5000:绑定特定端口号(主机的所有网络接口的5000端口均绑定容器的5000端口)
docker run -p 127.0.0.1:5000:5000:绑定主机的特定接口的端口号
docker run -d -p 127.0.0.1:5000:5000/udp training/webapp python app.py:绑定udp端口号
docker port <CONTAINER_ID> 5000:查看容器的5000端口对应本地机器的IP和端口号
使用Docker Linking连接容器:
Docker为源容器和接收容器创建一个安全的通道,容器之间不需要暴露端口,接收的容器可以访问源容器的数据
docker run -d -P --name <CONTAINER_NAME> --link <CONTAINER_NAME_TO_LINK>:<ALIAS>
3:数据管理
Data Volumes:volume是在一个或多个容器里指定的特殊目录
数据卷可以在容器间共享和重复使用
可以直接修改容器卷的数据
容器卷里的数据不会被包含到镜像中
容器卷保持到没有容器再使用它
可以在容器启动的时候添加-v参数指定容器卷,也可以在Dockerfile里用VOLUMN命令添加
docker run -d -P --name web -v /webapp training/webapp python app.py
也可以将容器卷挂载到宿主机目录或宿主机的文件上,<容器目录或文件>的内容会被替换为<宿主机目录或文件>的内容,默认容器对这个目录有可读写权限
docker run -d -P --name web -v <宿主机目录>:<容器目录> training/webapp python app.py可以通过指定ro,将权限改为只读docker run -d -P --name web -v <宿主机目录>:<容器目录>:ro training/webapp python app.py在一个容器创建容器卷后,其他容器便可以通过--volumes-from共享这个容器卷数据,如下:docker run -d -v /dbdata --name db1 training/postgres
echo Data-only container for postgres首先启动了一个容器,并为这个容器增加一个数据卷/dbdata,然后启动另一个容器,共享这个数据卷docker run -d --volumes-from db1 --name db2 training/postgres此时db2使用了db1的容器卷,当容器db1被删除时,容器卷也不会被删除,只有所有容器不再使用此容器卷时,才会被删除docker rm -v:删除容器卷
除了共享数据外,容器卷另一个作用是用来备份、恢复和迁移数据
docker run --volumes-from db1 -v /home/backup:/backup ubuntu tar cvf /backup/backup.tar /dbdata启动一个容器数据卷使用db1容器的数据卷,同时新建立一个数据卷指向宿主机目录/home/backup,将/dbdata目录的数据压缩为/backup/backup.tardocker run -v /dbdata --name dbdata2 ubuntu /bin/bash
docker run --volumes-from dbdata2 -v /home/backup:/backup busybox tar xvf /backup/backup.tar启动一个容器,同时把backup.tar的内容解压到容器的backup
4:其他命令
docker extc -it <CONTAINER> <COMMAND>:在容器里执行命令,并输出结果
docker cp <CONTAINER_ID>:path hostpath:复制容器内的文件到宿主机目录上
docker inspect <CONTAINER_ID>:查看容器详细信息(输出为Json)
docker wait <CONTAINER_ID>:阻塞对容器的其他调用方法,直到容器停止后退出
docker attach <CONTAINER_ID> 连接到启动的容器
docker logs <CONTAINER_ID> : 输出容器日志
docker stop <CONTAINER_ID>:停止container
docker start <CONTAINER_ID>:重新启动container
5:删除none容器
docker rmi $(docker images -q)
docker rmi $(docker images | grep "^<none>" | awk "{print $3}")
6:问题记录
Q1:出现docker demeon无法启动
很可能是磁盘满了,可以使用rm -rf /var/lib/docker/* 命令删除磁盘上所有docker容器,重启后即可释放磁盘空间。
docker save -o xxx.tar myrepo/xxx:latest --- 导出镜像到本地文件
docker load -i xxx.tar --- 将本地文件导入到本地镜像仓库
2:网络管理
docker run -P:随机分配端口号
docker run -p 5000:5000:绑定特定端口号(主机的所有网络接口的5000端口均绑定容器的5000端口)
docker run -p 127.0.0.1:5000:5000:绑定主机的特定接口的端口号
docker run -d -p 127.0.0.1:5000:5000/udp training/webapp python app.py:绑定udp端口号
docker port <CONTAINER_ID> 5000:查看容器的5000端口对应本地机器的IP和端口号
使用Docker Linking连接容器:
Docker为源容器和接收容器创建一个安全的通道,容器之间不需要暴露端口,接收的容器可以访问源容器的数据
docker run -d -P --name <CONTAINER_NAME> --link <CONTAINER_NAME_TO_LINK>:<ALIAS>
3:数据管理
Data Volumes:volume是在一个或多个容器里指定的特殊目录
数据卷可以在容器间共享和重复使用
可以直接修改容器卷的数据
容器卷里的数据不会被包含到镜像中
容器卷保持到没有容器再使用它
可以在容器启动的时候添加-v参数指定容器卷,也可以在Dockerfile里用VOLUMN命令添加
docker run -d -P --name web -v /webapp training/webapp python app.py
也可以将容器卷挂载到宿主机目录或宿主机的文件上,<容器目录或文件>的内容会被替换为<宿主机目录或文件>的内容,默认容器对这个目录有可读写权限
docker run -d -P --name web -v <宿主机目录>:<容器目录> training/webapp python app.py可以通过指定ro,将权限改为只读docker run -d -P --name web -v <宿主机目录>:<容器目录>:ro training/webapp python app.py在一个容器创建容器卷后,其他容器便可以通过--volumes-from共享这个容器卷数据,如下:docker run -d -v /dbdata --name db1 training/postgres
echo Data-only container for postgres首先启动了一个容器,并为这个容器增加一个数据卷/dbdata,然后启动另一个容器,共享这个数据卷docker run -d --volumes-from db1 --name db2 training/postgres此时db2使用了db1的容器卷,当容器db1被删除时,容器卷也不会被删除,只有所有容器不再使用此容器卷时,才会被删除docker rm -v:删除容器卷
除了共享数据外,容器卷另一个作用是用来备份、恢复和迁移数据
docker run --volumes-from db1 -v /home/backup:/backup ubuntu tar cvf /backup/backup.tar /dbdata启动一个容器数据卷使用db1容器的数据卷,同时新建立一个数据卷指向宿主机目录/home/backup,将/dbdata目录的数据压缩为/backup/backup.tardocker run -v /dbdata --name dbdata2 ubuntu /bin/bash
docker run --volumes-from dbdata2 -v /home/backup:/backup busybox tar xvf /backup/backup.tar启动一个容器,同时把backup.tar的内容解压到容器的backup
4:其他命令
docker extc -it <CONTAINER> <COMMAND>:在容器里执行命令,并输出结果
docker cp <CONTAINER_ID>:path hostpath:复制容器内的文件到宿主机目录上
docker inspect <CONTAINER_ID>:查看容器详细信息(输出为Json)
docker wait <CONTAINER_ID>:阻塞对容器的其他调用方法,直到容器停止后退出
docker attach <CONTAINER_ID> 连接到启动的容器
docker logs <CONTAINER_ID> : 输出容器日志
docker stop <CONTAINER_ID>:停止container
docker start <CONTAINER_ID>:重新启动container
5:删除none容器
docker rmi $(docker images -q)
docker rmi $(docker images | grep "^<none>" | awk "{print $3}")
6:问题记录
Q1:出现docker demeon无法启动
很可能是磁盘满了,可以使用rm -rf /var/lib/docker/* 命令删除磁盘上所有docker容器,重启后即可释放磁盘空间。
相关文章推荐
- Docker常用命令
- Docker常用命令
- Docker学习笔记(2)--Docker常用命令
- (转)Docker常用命令
- docker常用命令
- 如何使用 docker 及常用命令(一)
- docker常用管理命令(上)
- Docker学习笔记常用命令持续整理
- Docker常用命令
- docker 常用命令
- Docker学习笔记(2)--Docker常用命令
- docker 常用命令
- Docker常用命令
- Docker常用命令
- docker专题(2):docker常用管理命令(上)
- 常用docker命令,及一些坑
- Docker Serials 2: 常用命令
- 关于Docker 常用命令
- docker常用命令
- docker常用管理命令(下)