docker 各种功能语法总结(持续更新)

docker各种语法功能

1. docker cp

功能:
Copy files/folders between a container and the local filesystem, 在容器和本地之间进行文件/文件夹拷贝。
用法:

docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH|-
docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH

OPTIONS:

Name, shorthanddefaultDescription
–archive , -aArchive mode (copy all uid/gid information)
–follow-link , -LAlways follow symbol link in SRC_PATH

举例:
将主机./RS-MapReduce目录拷贝到容器30026605dcfe的/home/cloudera目录下。

docker cp RS-MapReduce 30026605dcfe:/home/cloudera

将容器30026605dcfe的/home/cloudera/RS-MapReduce目录拷贝到主机的/tmp目录中。

docker cp 30026605dcfe:/home/cloudera/RS-MapReduce /tmp/

2. docker run

功能:
创建一个新的容器并运行一个命令
用法:

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

OPTIONS:

    -a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
    -d: 后台运行容器,并返回容器ID;
    -i: 以交互模式运行容器,通常与 -t 同时使用;
    -P: 随机端口映射,容器内部端口随机映射到主机的高端口
    -p: 指定端口映射,格式为:主机(宿主)端口:容器端口
    -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
    --name="nginx-lb": 为容器指定一个名称;
    --dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;
    --dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;
    -h "mars": 指定容器的hostname;
    -e username="ritchie": 设置环境变量;
    --env-file=[]: 从指定文件读入环境变量;
    --cpuset="0-2" or --cpuset="0,1,2": 绑定容器到指定CPU运行;
    -m :设置容器使用内存最大值;
    --net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;
    --link=[]: 添加链接到另一个容器;
    --expose=[]: 开放一个端口或一组端口;
    --volume , -v: 绑定一个卷

举例:

# 使用docker镜像nginx:latest以后台模式启动一个容器,并将容器命名为mynginx。
docker run --name mynginx -d nginx:latest
# 使用镜像nginx:latest以后台模式启动一个容器,并将容器的80端口映射到主机随机端口。
docker run -P -d nginx:latest
# 使用镜像 nginx:latest,以后台模式启动一个容器,将容器的 80 端口映射到主机的 80 端口,主机的目录 /data 映射到容器的 /data。
docker run -p 80:80 -v /data:/data -d nginx:latest
# 绑定容器的 8080 端口,并将其映射到本地主机 127.0.0.1 的 80 端口上。
docker run -p 127.0.0.1:80:8080/tcp ubuntu bash
# 使用镜像nginx:latest以交互模式启动一个容器,在容器内执行/bin/bash命令。
runoob@runoob:~$ docker run -it nginx:latest /bin/bash
root@b8573233d675:/# 

3 docker 镜像导入导出

3.1 docker save

功能:
从镜像导出压缩包
用法:

docker save [options] images [images...]

举例:

# 其中-o和>表示输出到文件,nginx.tar为目标文件,nginx:latest是源镜像名(name:tag)
docker save -o nginx.tar nginx:latest
docker save > nginx.tar nginx:latest
3.2 docker load

功能:
加载导出的镜像压缩包
用法:

docker load [options]

举例:

#  其中-i和<表示从文件输入。会成功导入镜像及相关元数据,包括tag信息
docker load -i nginx.tar
docker load < nginx.tar
3.3 docker export

功能:
从容器导出压缩包
用法:

 docker export [options] container 

举例:

# 其中-o表示输出到文件,nginx-test.tar为目标文件,nginx-test是源容器名(name)
docker export -o nginx-test.tar nginx-test
3.4 docker import

功能:
从压缩包导入镜像
用法:

docker import [options] file|URL|- [REPOSITORY[:TAG]]
docker import nginx-test.tar nginx:imp
cat nginx-test.tar | docker import - nginx:imp

export命令导出的tar文件略小于save命令导出的
export命令是从容器(container)中导出tar文件,而save命令则是从镜像(images)中导出
基于第二点,export导出的文件再import回去时,无法保留镜像所有历史(即每一层layer信息,不熟悉的可以去看Dockerfile),不能进行回滚操作;而save是依据镜像来的,所以导入时可以完整保留下每一层layer信息。如下图所示,nginx:latest是save导出load导入的,nginx:imp是export导出import导入的。
若是只想备份images,使用save、load即可, 若是在启动容器后,容器内容有变化,需要备份,则使用export、import

4 docker 挂载本机文件夹

宿主机的/test目录挂载到容器的/soft目录,可通过以下方式指定:

# 同时会创建/soft 文件夹
sudo docker run -it -v /test:/soft centos /bin/bash
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值