docker 命令小结
来源:互联网 发布:java web项目根目录 编辑:程序博客网 时间:2024/06/07 23:31
老大让我打个docker 包, 突然发现有些docker 命令已经渐渐忘记了。。。。。。很是尴尬,当初没有做好总结,导致命令到处搜集,索性今晚总结一下常用命令。
镜像
1.docker pull 命令来从仓库获取所需要的镜像
docker pull ubuntu:12.04
下载过程中,会输出获取镜像的每一层信息。
该命令实际上相当于docker pull registry.hub.docker.com/ubuntu:12.04命令,即从注册服务器中的 ubuntu 仓库来下载标记为 12.04 的镜像。
2.显示本地已有的镜像
docker images //显示本地已有的镜像docker images –tree //以树状结构列出镜像的所有提交历史。
- 在列出信息中,可以看到几个字段信息
- 来自于哪个仓库,比如 ubuntu 镜像的标记,比如 14.04
- 它的 ID 号(唯一) 创建时间
- 镜像大小
3.进入镜像内部
docker run -t -i ubuntu:12.04 /bin/bash
4.修改镜像后我们使用 exit 来退出,现在我们的容器已经被我们改变了,使用 docker commit 命令来提交更新后的副本。
sudo docker commit -m "Added json gem" -a "Docker Newbee" imageID ouruser/sinatra:v2
其中,
-m 来指定提交的说明信息,跟我们使用的版本控制工具一样;
-a 可以 指定更新的用户信息;
之后是用来创建镜像的容器的 ID;
最后指定目标镜像的仓库 名和 tag 信息。
创建成功后会返回这个镜像的 ID 信息。
5.下载了一个 ubuntu-14.04 的镜像,之后使用以下命令导入:
sudo cat ubuntu-14.04.tar.gz | docker import - ubuntu:14.04
6.上传镜像
可以通过 docker push 命令,把自己创建的镜像上传到仓库中来共享
sudo docker push myImageName
7.导出镜像到本地文件,可以使用 docker save 命令。
docker save -o ubuntu_14.04.tar ubuntu:14.04 ///ubuntu_14.04.tar 是保存到本地的名称 ubuntu:14.04为原始镜像的名称。
8.使用 docker load 从导出的本地文件中再导入到本地镜像库
sudo docker load --input ubuntu_14.04.tar
或
sudo docker load < ubuntu_14.04.tar
9.移除本地镜像
docker rmi // docker rmi 命令移除镜像。注意 docker rm 命令是 移除容器。//在删除镜像之前要先用 docker rm 删掉依赖于这个镜像的所有容器
10。强行移除该镜像,即使其正被使用;
docker rmi -f imageID
11。清理所有未打过标签的本地镜像
sudo docker rmi $(docker images -q -f "dangling=true")
12。显示一个镜像的历史;
docker history image_name
容器
1。启动一个 bash 终端,允许用户进行交互。
sudo docker run -t -i ubuntu:14.04 /bin/bash// -t 选项让Docker分配一个伪终端(pseudo-tty)并绑定到容器的标准输入 上, 则让容器的标准输入保持打开。
2.启动已终止容器
docker start 容器IDdocker start -i containerID /// 启动一个Container并进入交互模式
3。 后台(background)运行
sudo docker run -d 镜像ID
此时容器会在后台运行并不会把输出的结果(STDOUT)打印到宿主机上面(输出结果 可以用docker logs 查看)。
–name 标记可以为容器自定义命名。
docker run -d -P --name web 镜像ID
–net:host 映射宿主机的host (容器可用宿主机IP访问,解决容器上网问题)
docker run -d -P --net=host --name web 镜像ID
4。查看docker 容器启动日志
docker logsdocker logs -f <容器名orID> //查看容器日志
5。 终止容器
停止一个正在运行的容器
docker stop 容器ID
6。查看停止后的容器
docker ps -a // 处于终止状态的容器,可以通过 docker start 命令来重新启动。docker ps -q //仅列出容器ID docker ps -s// 显示容器大小。
7。 进入容器
docker exec -it 容器id bin/bash
8.导出容器
docker export ContainerID > 导出的名字.tar
9。导入容器快照
cat 本地镜像文件.tar | sudo docker import - test/ubuntu:v1.0/// test/ubuntu:v1.0为本地镜像
10。将一个container固化为一个新的image,后面的repo:tag可选
docker commit <container> [repo:tag]
10.删除容器
sudo docker rm 容器IDdocker rm <container...> // 删除一个或多个containerdocker rm `docker ps -a -q` //删除所有的containerdocker ps -a -q | xargs docker rm //同上, 删除所有的container
用 docker ps -a 命令可以查看所有已经创建的包括终止状态的容器,如果数量 太多要一个个删除可能会很麻烦,用 docker rm $(docker ps -a -q) 可以全 部清理掉。
仓库
docker search 命令来查找官方仓库中的镜像,并利用 docker pull 命令来将它下载到本地。
数据卷
1。创建一个数据卷
用 docker run 命令的时候,使用 -v 标记来创建一个数据卷并挂载到容器 里。在一次 run 中多次使用可以挂载多个数据卷。
下面创建一个名为 web 的容器,并加载主机的 /src/webapp 目录到容器的 /opt/webapp 目录。
docker run -d -P --name web -v /src/webapp:/opt/webapp ImageID
Docker 挂载数据卷的默认权限是读写,用户也可以通过 :ro 指定为只读。
sudo docker run -d -P --name web -v /src/webapp:/opt/webapp:roImageID
2。查看数据卷的具体信息
docker inspect 容器名字
网络
1。当使用 -P(大写) 标记时,Docker 会随机映射一个 49000~49900 的端口到内部容器开
放的网络端口。
sudo docker run -d -P ImageId
2。-p(小写的)则可以指定要映射的端口在一个指定端口上只可以绑定一个 容器。支持的格式有 ip:hostPort:containerPort | ip::containerPort | hostPort:containerPort
docker run -i -t -p <host_port:contain_port> ImageId// 将container的端口映射到宿主机的端口
容器互联
1。
将新启动的 web 容器和 存在的db容器进行互联
先创建一个db 容器
sudo docker run -d --name db 镜像ID
在创建一个 web 容器和db 互联
–link 参数的格式为 –link name:alias ,其中 name 是要链接的容器的 名称, 是这个连接的别名。
sudo docker run -d -P --name web --link db:db 镜像ID
Docker 在两个互联的容器之间创建了一个安全隧道,而且不用映射它们的端口到 宿主主机上。在启动 db 容器的时候并没有使用 -p 和 -P 标记,从而避免了暴 露数据库端口到外部网络上。
2。公开连接信息
使用 env 命令来查看 web 容器的环境变量
$ sudo docker run --rm --name web2 --link db:db 镜像ID en
- Docker CLI命令小结
- docker 命令小结
- docker命令小结
- [docker]docker命令docker run的小结
- [docker]docker命令 docker inspect
- docker 命令
- Docker 命令
- docker命令
- Docker命令
- docker命令
- Docker命令
- docker 命令
- Docker命令
- docker命令
- docker命令
- docker命令
- Docker 命令
- docker命令
- webbrowser里的js与程序交互问题
- gitlab 命令
- 游戏界面组建Morn
- 一步两步带你实现Android沉浸式设计
- Leetcode 212 Word Search II 字典树 + 回溯
- docker 命令小结
- 23种设计模式分析(2):创建型模式
- Scala基础应用(5)- 函数式编程
- Windows下启动Tomcat 访问localhost:8080遇到“java.lang.IllegalStateException: No output folder”
- 3月20号
- flume+kafka+storm整合02---问题
- PE文件详解(五)
- 求任意一点是否在三角形内部
- “无法启动此程序,因为计算机中丢失MSVCR100D.dll”解决方案