https://docs.docker.com/reference/ 官方命令总结地址java
建立一个新的容器并运行一个命令mysql
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:latest docker run -p 127.0.0.1:80:8080/tcp ubuntu bash docker run -it nginx:latest /bin/bash
启动/关闭/重启容器nginx
docker start/stop/restart [options] container [container...]
杀掉一个运行中的容器sql
-s:向容器发送一个信号 docker kill -s KILL mynginx
删除一个或多个容器docker
-f:经过SIGKILL信号强制删除一个运行中的容器 -l:移除容器间的网络链接,而非容器自己 -v:-v删除与容器关联的卷 docker rm -f db01 db02 docker rm -l db docker rm -v nginx01
pause暂停,unpause恢复apache
docker pause [OPTIONS] CONTAINER [CONTAINER...]
docker unpause [OPTIONS] CONTAINER [CONTAINER...]
建立一个容器,但不启动它(用法相似docker run)ubuntu
docker create --name mynginx nginx:latest
docker exec:在运行的容器中执行命令bash
-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 5 docker ps -a -q
获取容器/镜像的元数据
-f: 指定返回值的模板 -s: 显示总的文件大小 --type: 为指定类型返回JSON docker inspect mysql:5.6 docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' mymysql
查看容器中运行的进行信息,支持ps命令参数
docker top [options] container [ps options] docker top mymysql
链接到运行中的容器
docker attach [options] container # --sig-proxy=false 加上参数容器仍是会退出(经过ctrl+D退出容器) docker attach --sig-proxy=false mynginx
从服务器获取实时时间(监听)
-f: 根据条件过滤事件 --since:从指定的时间戳后显示全部事件 --until:流水时间显示到指定的时间为止 若是不加任何参数,监听当前事件 docker events
获取容器的日志(容器中输出到STDOUT,STDERR中的日志)
-f: 跟踪日志输出 --since: 显示某个时间开始的全部日志 -t: 显示时间戳 --tail: 仅列出最新n条容器日志 docker logs -f mynginx
阻塞运行直到容器中止,而后打印它的退出代码
docker wait container
将容器的文件系统做为一个tar归档文件导出到stdout
docker export -o mysql-`data +%Y%m%d`.tar a404c6c174a2
列出指定的容器的端口映射或者查找将PRIVATE_PORT NAT到面向公众的端口
docker port mysql
更新容器的一些配置(内存,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
从容器建立一个新的镜像
-a: 提交的镜像做者 -c: 使用dockerfile指令来建立镜像 -m: 提交时的说明文字 -p: 在提交时,将容器暂停 docker commit -a "runoob.com" -m "my apache" a404c6c174a2 myapache:v1
用于容器和主机之间的数据拷贝
docker cp [options] container:src_path dest_path docker cp [options] src_path container:dest_path docker cp /www/runoob 96f7f14e99ab:/www/ docker cp 96f7f14e99ab:/www/ /www/runoob
检查容器里文件结构的修改
docker diff [options] container docker diff mymysql
登录docker hub公共仓库(须要本身去注册)
docker login [options] [server] docker logout [options] [server] -u: 登录的用户名 -p: 登录的密码
从镜像仓库中拉取或更新指定镜像
docker pull [options] name[:tag|@DIGEST] -a: 拉取全部tagged镜像 --disable-content-trust: 忽略镜像的校验,默认开启 # 下载最新版java镜像 docker pull java
将本地镜像上传到镜像仓库,要先登录到镜像仓库
docker push [options] name[:tag] --disable-content-trust: 忽略镜像的校验,默认开启 docker push myapache:v1
在docker hub查找镜像
docker search [options] term --automated: 只列出automated build类型的镜像 --no-trunc: 显示完整的镜像描述 -s: 列出收藏数小于指定值的镜像 docker search -s 10 java
列出本地镜像
docker images [options] [repository:tag] -a: 列出本地全部镜像(含中间映像层,默认过滤中间映像层) --digests: 显示镜像的摘要信息(MD5值) -f: 显示知足条件的镜像 --format: 指定返回值的模版文件 --no-trunc: 显示完整的镜像信息 -q: 只显示镜像ID docker images docker images ubuntu
删除本地一个或多个镜像
-f:强制删除 --no-prune: 不移除该镜像的过程进行,默认移除 docker rmi -f runoob/ubuntu:v4
标记本地镜像,将其纳入某一个仓库
# 把镜像ubuntu:15.10标记为runoob/ubuntu:v3 docker tag ubuntu:15.10 runoob/ubuntu:v3
用于使用dockerfile建立镜像(后面会讲解到)
docker build [options] path | url | -
查看指定镜像的建立历史
docker history [options] image -H: 以可读的格式打印镜像大小和日期,默认为true --no-trunc: 显示完整的提交记录 -q: 仅列出提交记录ID
将指定镜像保存成tar归档文件
docker save [options] image [image ...] -o: 输出文件 docker save -o my_ubuntu_v3.tar runoob/ubuntu:v3
从归档文件中建立镜像
docker import [options] file |URL |- [repository:tag] docker import my_ubuntu_v3.tar runoob/ubuntu:v4
1.info
显示docker系统信息,包括镜像和容器数
docker info [options] docker info
显示docker版本信息
docker version [options] -f: 指定返回值的模板文件 docker version
查看每一个运行的docker容器的状态
docker stats CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS 9c5e0e259466 test02 0.02% 12.46MiB / 100MiB 12.46% 1.3kB / 0B 19.2MB / 16.4kB 2 d5183228b334 test01 0.02% 12.55MiB / 100MiB 12.55% 1.04kB / 0B 7.59MB / 16.4kB 2