docker - 非常重要 - 对于 image, container 等的基本操作

访问量: 230

两个非常重要的概念: 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

订阅/RSS Feed

Subscribe

分类/category