首页 > 编程知识 正文

docker教程,docker命令行大全

时间:2023-05-04 18:45:17 阅读:12044 作者:3806

1、搜索镜像

可以使用dockersearch命令搜索存储在DockerHub上的镜像。 运行此命令时,Docker将在DockerHub中搜索包含关键字java的镜像仓库。

#dockersearchjava

上述清单包括五列:

-NAME:镜像仓库名称。

-描述:镜像仓库。

-STARS :镜像仓库的集合数。 显示了该镜像仓库的受欢迎程度,与GitHub的stars0相似

-OFFICAL:指示镜像是否为官方仓库,此列中标记为“0k”的镜像由每个软件的官方项目组创建和维护

护理。

-AUTOMATED :指示是否为自动构建的镜像仓库。

2、下载镜像

命令可以使用Dockerpull命令从DockerRegistry下载镜像。 运行此命令时,docker将

从DockerHub的java仓库下载最新版本的java镜像。 如果要下载指定版本,请在java之后

在面上加上冒号来指定版本。 示例: dockerpulljava:8

3、列出镜像

可以使用dockerimages命令列出下载的镜像

# docker图像

上述清单的含义如下

-REPOSITORY :镜像所属仓库的名称。

-TAG:镜像标签。 默认值为latest,表示是最新的。

-IMAGEID (镜像ID,表示镜像的唯一标识符。

-CREATED :镜像创建时间。

-SIZE:镜像大小。

4 .删除本地镜像

可以使用dockerrmi命令删除指定的镜像。 dockerrmi镜像ID/名称将删除docker镜像

#dockerrmijava

注意:删除未使用的镜像。 镜像正在使用时无法删除。 参数是镜像id或名称

dockerrmi -f镜像ID/名称强制删除正在使用的镜像

结果:不推荐。 请停止容器正在删除镜像。

容器相关命令

1、新建容器并启动

-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':指定容器的网络连接类型,支持4种类型的bridge/host/none/container : --link=[]:添加到另一个容器的链接; --expose=[ ]打开:端口或端口组; 使用以下绑定--volume,-v:卷的dockerrun命令创建并启动新容器。 此命令是最常用的命令,有很多选项。 列举几个常见的选项。

-d选项:指示后台运行

-P选项:随机端口映射

-p选项:指定端口映射。 有四种形式:

- IP :主机端口3360容器端口

--IP :容器端口

- -主机端口:容器端口

--containerPort

--net选项:指定网络模式。 此选项具有以下可选参数:

--net=bridge:的默认选项。 表示已连接到默认网桥。

--net=host:容器使用宿主机网络。

--net=container:NAME-or-ID :告诉Docker将新容器使用现有容器的网络适配器

能放置。

--net=none :不配置容器网络,用户可以自定义网络配置。

#dockerrun-d-p91:80nginx

这将启动Nginx容器。 在本例中,我们向dockerrun添加了以下两个参数:

-d后台运行

-p宿主机端口:容器端口#从开放容器端口到宿主机端口

http://代理主机IP:91/

主界面如下:

 

需要注意的是,使用 docker run命令创建容器时,会先检查本地是否存在指定镜像。如果

本地不存在该名称的镜像, Docker就会自动从 Docker Hub下载镜像并启动一个 Docker

容器。

 

创建容器时,设置自动启动容器

docker run --restart=always 容器id(或者容器名称)

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

docker update --restart=always 容器id(或者容器名称)

docker 修改名称

docker 容器(服务)重命名只要一个命令就可以:

docker rename 原容器名 新容器名

 

2、列出容器

docker ps -a 列出所有的

 

docker ps --no-trunc 列出command

 

用 docker ps命令即可列出运行中的容器

# docker ps

 

如需列出所有容器(包括已停止的容器),可使用-a参数。该列表包含了7列,含义如下

- CONTAINER_ID:表示容器 ID。

- IMAGE:表示镜像名称。

- COMMAND:表示启动容器时运行的命令。

- CREATED:表示容器的创建时间。

- STATUS:表示容器运行的状态。UP表示运行中, Exited表示已停止。

- PORTS:表示容器对外的端口号。

- NAMES:表示容器名称。该名称默认由 Docker自动生成,也可使用 docker run命令的--

name选项自行指定。

 

3、停止容器

 

使用 docker stop命令,即可停止容器

# docker stop f0b1c8ab3633

其中f0b1c8ab3633是容器 ID,当然也可使用 docker stop容器名称来停止指定容器

 

4、强制停止容器

 

可使用 docker kill命令发送 SIGKILL信号来强制停止容器

# docker kill f0b1c8ab3633

 

5、启动已停止的容器

 

使用docker run命令,即可新建并启动一个容器。对于已停止的容器,可使用 docker

start命令来启动

# docker start f0b1c8ab3633

 

6、查看容器所有信息

 

# docker inspect f0b1c8ab3633

 

7、查看容器日志

 

#  docker container logs  f0b1c8ab3633

 

8、查看容器里的进程

 

#  docker top  f0b1c8ab3633

 

9、进入容器

 

使用docker container exec命令用于进入一个正在运行的docker容器。如果docker run命

令运行容器的时候,没有使用-it参数,就要用这个命令进入容器。一旦进入了容器,就可

以在容器的 Shell 执行命令了

# docker container exec -it f0b1c8ab3633 /bin/bash

docker exec it 6050dd42c426 sh

退出容器

exist

ctrl+p+q 离开

安装vim

apt-get update

apt-get install vim

 

 

10、删除容器

 

使用 docker rm命令即可删除指定容器

# docker rm f0b1c8ab3633

该命令只能删除已停止的容器,如需删除正在运行的容器,可使用-f参数

11、构建一个容器

docker build -t sorber-center:1.0 .

 

 

查看运行中的容器

docker ps

查看容器占用内存

docker stats 容器id

查看所有容器内存使用信息

docker stats -a

查看多个容器的内存使用信息

docker stats id1,id2

查看实时日志

docker logs -f -t --since="2019-11-25" --tail=200 容器名称

查看容器内存方法2

docker ps -a (找到容器id)

ps -ef | grep 容器id (找到容器的进程)

获得容器对应的pid后,就可以使用pid,pmap, ps 等查看进程内存的命令来查看容器内存了

top -p 100

PID:进程的ID USER:进程所有者 PR:进程的优先级别,越小越优先被执行 NInice:值 VIRT:进程占用的虚拟内存 RES:进程占用的物理内存 SHR:进程使用的共享内存 S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数 %CPU:进程占用CPU的使用率 %MEM:进程使用的物理内存和总内存的百分比 TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。 COMMAND:进程启动命令名称

pmap -d 100ps -e -o 'pid,comm,args,pcpu,rsz,vsz,stime,user,uid' | grep 5140查看Docker容器的信息

docker inspect 容器id

 

docker一键删除所有none镜像

 

一条命令ko

docker rmi `docker images | grep "<none>" | awk '{print $3}'`

如果确定所有none镜像确实没用,直接加个-f强制删除,谨慎

docker rmi -f `docker images | grep "<none>" | awk '{print $3}'`

 

将容器提交为新镜像

语法

docker commit 容器id容器名 新的镜像名字:版本

注意这里的镜像名必须为 xxx/name

xxx为你dockerhub上的用户名base为仓库名,不然会后面push会失败

docker commit 5615647e67a1 casainurbania/base:v1.0

推送到远程仓库

docker push casainurbania/base:v1.0

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。