C'est La Vie

    人生无彩排,每一天都是现场直播!

    关于docker的一些使用技巧

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任 […]

    dockerDocker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

    docker

    将container中的端口映射到宿主机

    在docker run时,通过-p参数将container中的服务端口映射到宿主机:

    docker run --name=<container-name> -d -p 80:80 <image-name>

    挂载本地目录到container

    通过 -v 参数来将本地目录挂载到container中:

    docker run --name=<container-name> -d -p 80:80 -v <host-file-path>:<container-file-path> <image-name>

    挂载目录如果权限不足,可以通过 –privileged=true 来为容器加特权操作:

    docker run --name=<container-name> --privileged=true -d -p 80:80 -v <host-file-path>:<container-file-path> <image-name>

    在container和宿主机之间互相复制文件

    从container中向宿主机复制文件:

    docker cp <containerId>:/file/path/within/container /host/path/target

    从宿主机向container复制文件:

    # 查询container名称
    docker ps
    # 获取完整的container id
    docker inspect -f '{{.Id}}' <container-id>
    # 复制文件
    sudo cp path-file-host /var/lib/docker/devicemapper/mnt/<full-container-id>/rootfs/<file-path-in-container>
    

    如何进入docker的container中

    一般对于一个VPS来说,可以通过使用SSH的方式来进入到系统中,从而对系统进行管理。但在docker中,不建议这样做。而是建议使用nsenter来进行操作。假设主机中已经存在了nsenter命令。

    首先查看当前运行中container的pid号:

    docker inspect --format "{{.State.Pid}}" <container-id>

    使用nsenter及pid号进入到container的命名空间中:

    nsenter --mount --uts --ipc --net --pid --target <pid>

    在docker节点之间导出与导入images

    可以通过save与load命令在节点之间进行镜像的导入与导出:

    docker save hliang/imagename > ./hliang-imagename.tar
    docker load < ./hliang-imagename.tar

     

    发表回复

    您的电子邮箱地址不会被公开。