加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Docker容器常用操作命令(镜像的上传、下载、导入、导出、创建、

发布时间:2020-12-16 03:16:37 所属栏目:安全 来源:网络整理
导读:1、docker镜像下载 docker pull [options] name [:tag@digest] ?name后边可以跟镜像标签或者镜像摘要(其实就是镜像的版本),如果不加任何东西,则会默认是在docker hub中下载:latest(最新版)的 ?参数详情: 名称 默认 描述 --all-tags,?a ? 下载仓库所有

1、docker镜像下载

docker pull [options] name [:tag@digest]

?name后边可以跟镜像标签或者镜像摘要(其实就是镜像的版本),如果不加任何东西,则会默认是在docker hub中下载:latest(最新版)的

?参数详情:

名称

默认

描述

--all-tags,?a

?

下载仓库所有镜像

--disable-content-trust

true

跳过镜像校验

--platform

?

设置镜像所属平台,如果有多个镜像服务.

?

2、查看当前docker镜像

docker images [options] [repository[:tag]]

?images后边可以加要查看的镜像名称和版本

?

3、运行镜像

docker run [options] image [:tag] [command] [arg...]

建议使用:docker run -dit [id]

参数说明:

?-d,--detach=false 指定容器运行于前台还是后台,默认为false

?-i,--interactive=false 打开STDIN,用于控制台交互

?-t,--tty=false 分配tty设备,该可以支持终端登录,默认为false

?-u,--user="" 指定容器的用户

?-a,--attach=[] 登录容器(必须是以docker run -d启动的容器)

?-w,--workdir="" 指定容器的工作目录

?-c,--cpu-shares=0 设置容器CPU权重,在CPU共享场景使用

?-e,--env=[] 指定环境变量,容器中可以使用该环境变量

?-m,--memory="" 指定容器的内存上限

?-P,--publish-all=false 指定容器暴露的端口

?-p,--publish=[] 指定容器暴露的端口

?-h,--hostname="" 指定容器的主机名

?-v,--volume=[] 给容器挂载存储卷,挂载到容器的某个目录

?--volumes-from=[] 给容器挂载其他容器上的卷,挂载到容器的某个目录

?--cap-add=[] 添加权限,权限清单详见:http://linux.die.net/man/7/capabilities

?--cap-drop=[] 删除权限,权限清单详见:http://linux.die.net/man/7/capabilities

?--cidfile="" 运行容器后,在指定文件中写入容器PID值,一种典型的监控系统用法

?--cpuset="" 设置容器可以使用哪些CPU,此参数可以用来容器独占CPU

?--device=[] 添加主机设备给容器,相当于设备直通

?--dns=[] 指定容器的dns服务器

?--dns-search=[] 指定容器的dns搜索域名,写入到容器的/etc/resolv.conf文件

?--entrypoint="" 覆盖image的入口点

?--env-file=[] 指定环境变量文件,文件格式为每行一个环境变量

?--expose=[] 指定容器暴露的端口,即修改镜像的暴露端口

?--link=[] 指定容器间的关联,使用其他容器的IP、env等信息

?--lxc-conf=[] 指定容器的配置文件,只有在指定--exec-driver=lxc时使用

?--name="" 指定容器名字,后续可以通过名字进行容器管理,links特性需要使用名字

?--net="bridge" 容器网络设置:

?bridge 使用docker daemon指定的网桥

?host //容器使用主机的网络

?container:NAME_or_ID >//使用其他容器的网路,共享IP和PORT等网络资源

?none 容器使用自己的网络(类似--net=bridge),但是不进行配置

?--privileged=false 指定容器是否为特权容器,特权容器拥有所有的capabilities

?--restart="no" 指定容器停止后的重启策略:

?no:容器退出时不重启

?on-failure:容器故障退出(返回值非零)时重启

?always:容器退出时总是重启

?--rm=false 指定容器停止后自动删除容器(不支持以docker run -d启动的容器)

?--sig-proxy=true 设置由代理接受并处理信号,但是SIGCHLD、SIGSTOP和SIGKILL不能被代理

?

4、查看正在运行的docker容器

docker ps

?-a :显示所有的容器,包括未运行的。

?-q :静默模式,只显示容器编号。

?-f :根据条件过滤显示的内容。

?--format :指定返回值的模板文件。

?-l :显示最近创建的容器。

?-n :列出最近创建的n个容器。

?--no-trunc :不截断输出。

?-s :显示总的文件大小。

?

5、进入docker容器内部的shell

docker exec -it [name] bash

?-d,以后台方式执行命令;

?-e,设置环境变量

?-i,交互模式

?-t,设置TTY

?-u,用户名或UID,例如myuser:myusergroup

?

6、docker build 构建镜像

docker build [OPTIONS] PATH | URL | -

OPTIONS说明:

?-f :指定要使用的Dockerfile路径;

?-m :设置内存最大值;

?--tag,-t:?镜像的名字及标签,通常 name:tag 或者 name 格式;可以在一次构建中为一个镜像设置多个标签。

?--build-arg=[] :设置镜像创建时的变量;

?--cpu-shares :设置 cpu 使用权重;

?--cpu-period :限制 CPU CFS周期;

?--cpu-quota :限制 CPU CFS配额;

?--cpuset-cpus :指定使用的CPU id;

?--cpuset-mems :指定使用的内存 id;

?--disable-content-trust :忽略校验,默认开启;

?--force-rm :设置镜像过程中删除中间容器;

?--isolation :使用容器隔离技术;

?--label=[] :设置镜像使用的元数据;

?--memory-swap :设置Swap的最大值为内存+swap,"-1"表示不限swap;

?--no-cache :创建镜像的过程不使用缓存;

?--pull :尝试去更新镜像的新版本;

?--quiet,-q :安静模式,成功后只输出镜像 ID;

?--rm :设置镜像成功后删除中间容器;

?--shm-size :设置/dev/shm的大小,默认值是64M;

?--ulimit :Ulimit配置。

?--network:?默认 default。在构建期间设置RUN指令的网络模式

?

7、docker删除容器

1)首先查看系统现有的容器

docker ps -a

很多是测试产生的容器,现在将他们删除,执行:

docker rm [c9b077c1e8b2 97b22f5efeca]

?c9b077c1e8b2、97b22f5efeca为要删除容器的id

?

2)删除正在运行中的容器

此时id为 ae32dddeadbf 的容器正在运行中

我们直接删除它是会报错的:

?

这时加上参数 -f (强制删除)即可

docker rm -f ae32dddeadbf

?

?

3)删除所有的容器

先停止所有运行中的容器:

docker stop $(docker ps -q)

?

再查看所有的容器:

docker ps -aq

?

删除所有的容器:

docker rm $(docker ps -aq)

?

8、docker删除镜像

先查看当前镜像:

docker images

?

删除镜像:

docker rmi ceshicopy2

?ok,已经删除

需要注意的是,删除镜像时,必须保证没有容器正在基于此镜像运行着,所以需要先删除基于此镜像的容器,再删除镜像

?

9、docker镜像的导入导出

先查看当前镜像

docker images

?

1)docker镜像的导出

docker save

用法:docker save > 【目标文件】 【源镜像名】

示例:

docker save > nginx.tar hub.c.163.com/library/nginx

?

2)docker镜像的导入

docker load

用法:docker load < 【导入的镜像】

示例:

docker load < nginx.tar

?

10、docker容器的导入导出

查看当前容器

docker ps -a

?

1)容器的导出

docker export

用法:docker export > 【目标文件】 【源镜像名】

示例:

docker export > jpress.tar 8bf49fa5ca97

?

2)容器的导入

docker import

用法:docker import 【导入的容器】 【导入后修改的名字】

示例:

docker import jpress.tar jpress:1

注意:

容器导入后也会形成镜像,然后再运行此镜像即可!

?

11、保存修改后的容器内容

docker commit ?[容器id] ?[修改后的名字:tag]

示例:

docker commit 03b79d8cef9d jpmysql

已经生成新的镜像,基于修改后的容器。

直接运行即可

?

12、镜像上传至私有仓库

docker push [OPTIONS] NAME[:TAG]

示例:

1、首先登录docker hub

docker login

?

2、上传镜像

docker push runningrookie/ubuntu:16.04

注意:上传此镜像前,需要先把镜像的名称改为[用户名]/ubuntu:[tag]格式,前边一定要是自己登录账号的用户名;

注意:[用户名]表示你的用户名,/ubuntu表示这个叫ubuntu的存储库,后边的:[tag]才是你上传到docker hub后显示的标签名称。

?

3、进入docker hub查看

?

13、docker容器设置开机自启

1、用法:

启动时加--restart=always参数

?

2、示例:

docker run --restart=always .....

如果创建时未指定 --restart=always,可通过update 命令设置:

docker update --restart=always xxx

若想要关闭自启动,可执行

docker update --restart=no xxx

?

3、参数:

?no ?不自动重启容器. (默认值)

?on-failure ?容器发生error而退出(容器退出状态不为0)重启容器,可以指定重启的最大次数,如:on-failure:10

?unless-stopped ?在容器已经stop掉或Docker stoped/restarted的时候才重启容器

?always ?在容器已经stop掉或Docker stoped/restarted的时候才重启容器,手动stop的不算

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读