docker - 对于 image, container 等的基本操作
参考:http://siwei.me/blog/posts/docker-image-container
image: 镜像, 静态的, 可以被commit. 可以被删除。
container: docker "run" (注意是不是start ) image 之后的到的. 内容不会被自动保存。 docker run 命令 就会产生新的。 而且docker 的理念是container 可以随时随地产生和抛弃。
docker run 命令: 根据image 来得到一个运行中的 container .这是一个崭新的container. (如果启动postgres后,postgres停止了,然后再次启动的不是使用ID启动,就是启动了了新的postgres,IP address会不一样。当然ID也不一样)
docker start 命令: 把之前停止的 container 跑起来
可以通过 --help 来查看 详细命令,例如 $ docker run --help 会打印出详细的解释。
docker run <image_name>
根据已有的image 创建一个新的container 并运行
例子: 运行 image: 933f6, 使用host ip, 并且把 host 的 /workspace 文件夹加载到container 中的 /workspace
docker run -v /workspace:/workspace --net=host -it --hostname=admin-container 933f6docker create 创建一个新的container ,但是不启动
docker start <id> 运行一个已经存在的,并且已经停止的container
docker stop <id> 停止已经一个存在的container
docker rm <container id> 删除一个或者多个container
docker image ls 或者 $ docker images 查看本地所有的image
docker exec -it <container id> /bin/bash 直接类似于使用ssh 登录一个container
docker attach <container id> 查看某个container
docker logs <container id> 查看某个container 的shell的输出
docker inspect <container id> , 查看某个container的详细情况. 包括ip 等。
docker ps 列出运行中的container ( 如果要列出所有,包括已经启动的和已经停止的所有,就 docker ps -a )
docker image ls 列出所有的docker image
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu add_vim 4efbaa2d43fc About a minute ago 167MB
docker export 把 container 导出 , 例如: docker export -o rails_container.tar c7180f611c13
docker save 把 image 导出, 例如: docker save -o rails_image.tar 253ea174ad29
docker load 导入使用 docker save 命令导出的镜像。
例如: 导入镜像:
$ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
$ docker load < busybox.tar.gz
Loaded image: busybox:latest
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
busybox latest 769b9341d937 7 weeks ago 2.489 MB
$ docker load --input fedora.tar
Loaded image: fedora:rawhide
Loaded image: fedora:20
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
busybox latest 769b9341d937 7 weeks ago 2.489 MB
fedora rawhide 0d20aec6529d 7 weeks ago 387 MB
fedora 20 58394af37342 7 weeks ago 385.5 MB
fedora heisenbug 58394af37342 7 weeks ago 385.5 MB
fedora latest 58394af37342 7 weeks ago 385.5 MBdocker import 把image 导入。(但是不运行,仅仅导入到本地的image 仓库)
docker cp 把本地的copy到container 中。 或者反之
docker cp <containerId>:/file/path/within/container /host/path/target
或者 docker cp ~/.vim <containerid>:/root
docker run 运行docker ,并且加上各种参数。
-v 加上本地存储
docker-compose
运行某个指定的yml文件:
docker-compose -f ./docker-compose.yml up