docker - 非常重要 - 对于 image, container 等的基本操作
访问量: 90
两个非常重要的概念: image , container
image: 镜像, 静态的东东, 可以被commit. 可以被删除。
container: docker "run" (注意是不是start ) image 之后的到的东东. 内容不会被自动保存。 docker run 命令 就会产生新的。 而且docker 的理念是container 可以随时随地产生和抛弃。
docker run 命令: 根据image 来得到一个运行中的 container .这是一个崭新的container.
docker start 命令: 把之前停止的 container 跑起来
可以通过 --help 来查看 详细命令,例如 $ docker run --help 会打印出详细的解释。
docker ps
查看运行中的container
docker ps -a
查看所有的container
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 933f6
docker 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 inspect c7180f611c13 [ { "Id": "c7180f611c13d238755898e83f7fdefb06fad782f87e3ec9e260d3f62625c9a0", "Created": "2020-12-14T09:44:03.290361691Z", "Path": "/bin/bash", "Args": [], "State": { "Status": "running", "Running": true, "Paused": false, "Restarting": false, "OOMKilled": false, "Dead": false, "Pid": 8122, "ExitCode": 0, "Error": "", "StartedAt": "2020-12-14T09:44:03.899503111Z", "FinishedAt": "0001-01-01T00:00:00Z" },
docker ps 列出运行中的container ( 如果要列出所有,就 docker ps -a )
# docker top c7180f611c13 UID PID PPID C STIME TTY TIME CMD root 8122 8096 0 17:44 pts/0 00:00:00 /bin/bash
docker commit
为某个image 进行内容的永久性修改. 记得: 务必要加上 <container id> image:tag_name 作为结尾, 例如:
docker commit -a 'dashi' -m '增加tag名字' c7180f611c13 ubuntu:add_vim
sha256:4efbaa2d43fc40ac308297fe6e0df72fd2e55a9700abee5c9e4aa28b41cbf0a4
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 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 不支持symlink, 参考: https://stackoverflow.com/questions/38485607/mount-host-directory-with-a-symbolic-link-inside-in-docker-container/40322275