您的当前位置:首页正文

Docker系列二:docker常用命令总结

2021-11-13 来源:意榕旅游网
Docker系列⼆:docker常⽤命令总结

容器⽣命周期管理

1.docker run

创建⼀个新的容器并运⾏⼀个命令

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

-a stdin:指定标准输⼊输出内容类型,可选STDIN/STDOUT/STDERR-d: 后台运⾏容器,并返回容器ID-i: 以交互式运⾏容器,通常与-t同时使⽤-p: 端⼝映射,格式为 主机(宿主)端⼝:容器端⼝-t: 为容器重新分配⼀个伪输⼊终端,通常与-i同时使⽤--name=\"name\": 为容器指定⼀个名称

--dns 8.8.8.8: 为容器指定⼀个dns服务器,默认与宿主⼀致--dns-search domain:为容器指定⼀个DNS域名,默认与宿主⼀致-h \"hostname\": 指定容器的hostname-e arg=\"value\": 设置环境变量-env-file=[]:从指定⽂件读⼊环境变量

--cpuset=\"0-2\" or --cpuset=\"0,1,2\": 绑定容器到指定的cpu运⾏-m: 设置容器使⽤内存最⼤值

--net=\"bridge\": 指定容器的⽹络连接类型,⽀持bridge/host/none/container四种类型--link=[]:添加链接到另外⼀个容器

--expose=[]:开放⼀个端⼝或⼀组端⼝,宿主机使⽤随机端⼝映射到开放的端⼝#实例

docker run --name mynginx -d nginx:latest

# 映射多个端⼝

docker run -p 80:80/tcp -p 90:90 -v /data:/data -d nginx:latestdocker run -p 127.0.0.1:80:8080/tcp ubuntu bashdocker run -it nginx:latest /bin/bash

2.start/stop/restart命令

启动/关闭/重启容器

docker start/stop/restart [options] container [container...]

3.kill命令

杀掉⼀个运⾏中的容器

-s:向容器发送⼀个信号docker kill -s KILL mynginx 4.rm命令

删除⼀个或多个容器

-f:通过SIGKILL信号强制删除⼀个运⾏中的容器-l:移除容器间的⽹络连接,⽽⾮容器本⾝-v:-v删除与容器关联的卷docker rm -f db01 db02docker rm -l db

docker rm -v nginx01

5.pause/unpause命令

pause暂停,unpause恢复

docker pause [OPTIONS] CONTAINER [CONTAINER...]docker unpause [OPTIONS] CONTAINER [CONTAINER...]

6.create命令

创建⼀个容器,但不启动它(⽤法类似docker run)

docker create --name mynginx nginx:latest

7.exec命令

docker exec:在运⾏的容器中执⾏命令

-d:分离模式:在后台运⾏

-i:及时没有附加也保持STDIN打开-t:分配⼀个伪终端

docker exec -it mynginx /bin/bash /root/secript.sh

docker exec -i -t mynginx /bin/bash # 使⽤该命令可以分配⼀个伪终端执⾏命令, 使⽤exit推出时,docker容器不会⾃动关闭

容器操作

1.PS列出容器

-a: 显⽰所有容器,包括未运⾏的-f: 根据条件过滤显⽰的内容--format: 指定返回值的模板⽂件-l: 显⽰最近创建的容器-n: 列出最近创建的n个容器--no-trunc: 不截断输出

-q: 静默模式,值显⽰容器编号-s: 显⽰总⽂件⼤⼩docker ps

docker ps -n 5docker ps -a -q

2.inspect

获取容器/镜像的元数据

-f: 指定返回值的模板-s: 显⽰总的⽂件⼤⼩

--type: 为指定类型返回JSONdocker inspect mysql:5.6

docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' mymysql

3.top

查看容器中运⾏的进⾏信息,⽀持ps命令参数

docker top [options] container [ps options]docker top mymysql 4.attach

连接到运⾏中的容器

docker attach [options] container

# --sig-proxy=false 加上参数容器还是会退出(通过ctrl+D退出容器)docker attach --sig-proxy=false mynginx 5.events

从服务器获取实时时间(监听)

-f: 根据条件过滤事件

--since:从指定的时间戳后显⽰所有事件--until:流⽔时间显⽰到指定的时间为⽌如果不加任何参数,监听当前事件docker events 6.logs

获取容器的⽇志(容器中输出到STDOUT,STDERR中的⽇志)

-f: 跟踪⽇志输出

--since: 显⽰某个时间开始的所有⽇志-t: 显⽰时间戳

--tail: 仅列出最新n条容器⽇志docker logs -f mynginx 7.wait

阻塞运⾏直到容器停⽌,然后打印它的退出代码

docker wait container 8.export

将容器的⽂件系统作为⼀个tar归档⽂件导出到stdout

docker export -o mysql-`data +%Y%m%d`.tar a404c6c174a2 9.port

列出指定的容器的端⼝映射或者查找将PRIVATE_PORT NAT到⾯向公众的端⼝

docker port mysql

10.update

更新容器的⼀些配置(内存,cpu,是否⾃动启动), 修改内存时,虚拟机必须是关机状态,否则报错 未知参数

root@bogon:~# docker update --help

Usage: docker update [OPTIONS] CONTAINER [CONTAINER...]Update configuration of one or more containers

Options:

--blkio-weight uint16 Block IO (relative weight), between 10 and 1000, or 0 to disable (default 0) --cpu-period int Limit CPU CFS (Completely Fair Scheduler) period --cpu-quota int Limit CPU CFS (Completely Fair Scheduler) quota --cpu-rt-period int Limit the CPU real-time period in microseconds --cpu-rt-runtime int Limit the CPU real-time runtime in microseconds -c, --cpu-shares int CPU shares (relative weight) --cpus decimal Number of CPUs

--cpuset-cpus string CPUs in which to allow execution (0-3, 0,1) --cpuset-mems string MEMs in which to allow execution (0-3, 0,1) --kernel-memory bytes Kernel memory limit -m, --memory bytes Memory limit

--memory-reservation bytes Memory soft limit

--memory-swap bytes Swap limit equal to memory plus swap: '-1' to enable unlimited swap --restart string Restart policy to apply when a container exits

root@bogon:~# docker update --memory-swap 10240000 -m 10240000 portainer

容器rootfs命令

1.commit

从容器创建⼀个新的镜像

-a: 提交的镜像作者

-c: 使⽤dockerfile指令来创建镜像-m: 提交时的说明⽂字-p: 在提交时,将容器暂停

docker commit -a \"runoob.com\" -m \"my apache\" a404c6c174a2 myapache:v1 2.cp

⽤于容器和主机之间的数据拷贝

docker cp [options] container:src_path dest_pathdocker cp [options] src_path container:dest_pathdocker cp /www/runoob 96f7f14e99ab:/www/docker cp 96f7f14e99ab:/www/ /www/runoob 3.diff

检查容器⾥⽂件结构的修改

docker diff [options] containerdocker diff mymysql

镜像仓库

1.login/logout

登陆docker hub公共仓库(需要⾃⼰去注册)

docker login [options] [server]docker logout [options] [server]-u: 登陆的⽤户名-p: 登陆的密码

2.pull

从镜像仓库中拉取或更新指定镜像

docker pull [options] name[:tag|@DIGEST]-a: 拉取所有tagged镜像

--disable-content-trust: 忽略镜像的校验,默认开启# 下载最新版java镜像docker pull java 3.push

将本地镜像上传到镜像仓库,要先登陆到镜像仓库

docker push [options] name[:tag]

--disable-content-trust: 忽略镜像的校验,默认开启docker push myapache:v1 4.search

在docker hub查找镜像

docker search [options] term

--automated: 只列出automated build类型的镜像--no-trunc: 显⽰完整的镜像描述-s: 列出收藏数⼩于指定值的镜像

docker search -s 10 java

本地镜像管理

1.images

列出本地镜像

docker images [options] [repository:tag]

-a: 列出本地所有镜像(含中间映像层,默认过滤中间映像层)--digests: 显⽰镜像的摘要信息(MD5值)-f: 显⽰满⾜条件的镜像

--format: 指定返回值的模版⽂件--no-trunc: 显⽰完整的镜像信息-q: 只显⽰镜像IDdocker imagesdocker images ubuntu 2.rmi

删除本地⼀个或多个镜像

-f:强制删除

--no-prune: 不移除该镜像的过程进⾏,默认移除docker rmi -f runoob/ubuntu:v4 3.tag

标记本地镜像,将其归⼊某⼀个仓库

# 把镜像ubuntu:15.10标记为runoob/ubuntu:v3docker tag ubuntu:15.10 runoob/ubuntu:v3 4.build

⽤于使⽤dockerfile创建镜像(后⾯会讲解到)

docker build [options] path | url | - 5.history

查看指定镜像的创建历史

docker history [options] image

-H: 以可读的格式打印镜像⼤⼩和⽇期,默认为true--no-trunc: 显⽰完整的提交记录-q: 仅列出提交记录ID 6.save

将指定镜像保存成tar归档⽂件

docker save [options] image [image ...]-o: 输出⽂件

docker save -o my_ubuntu_v3.tar runoob/ubuntu:v3 7.import

从归档⽂件中创建镜像

docker import [options] file |URL |- [repository:tag]docker import my_ubuntu_v3.tar runoob/ubuntu:v4

info/version

1.info

显⽰docker系统信息,包括镜像和容器数

docker info [options]docker info

2.version

显⽰docker版本信息

docker version [options]-f: 指定返回值的模板⽂件docker version

其他stats

查看每个运⾏的docker容器的状态

docker stats

CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS9c5e0e259466 test02 0.02% 12.46MiB / 100MiB 12.46% 1.3kB / 0B 19.2MB / 16.4kB 2d5183228b334 test01 0.02% 12.55MiB / 100MiB 12.55% 1.04kB / 0B 7.59MB / 16.4kB 2

因篇幅问题不能全部显示,请点此查看更多更全内容