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 容器名称
查看容器内存方法2docker ps -a (找到容器id)
ps -ef | grep 容器id (找到容器的进程)
获得容器对应的pid后,就可以使用pid,pmap, ps 等查看进程内存的命令来查看容器内存了
top -p 100PID:进程的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