整理下常用的命令cuiyaonan2000@163.com
全局操作#显示当前docker的版本号 docker -v
容器镜像操作#查看所有存在的惊喜那个 docker images
#删除容器,要删除镜像必须要先删除容器 docker rm id/tag
#删除镜像 docer rmi id/tag
#搜索命令还是很常用的,可以看到官方的和个人制作的镜像,节省我们很多时间
docker search 镜像名称
创建容器#创建镜像的一个实例
- -p指定端口映射 具体含义: ip:hostPort:containerPort
- -d表示以守护线程运行
- --name可以指定容器名称
docker run --name 容器名称 -d -p 8000:8080 镜像tag:version
#启动一个存在的容器 docker start 容器名称
#关闭一个运行中的容器 docker stop 容器名称
#注意创建过得容器并不会消失,如果停用了可以使用 docker ps -a
#在启动docker容器的时候通过参数 -e 加入环境变量 docker run -d --name test2 {镜像名} -e REDIS_HOST=192.1.1.0
#容器内文件映射到容器外,如下使用 -v 将/var/opt/mssql映射到容器外的/data路径下
docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=密码" -u 0:0 -p 1433:1433 --name mssql -v /data:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2019-latest
日志操作#查看日志 docker logs [OPTIONS] CONTAINER Options: --details 显示更多的信息 -f, --follow 跟踪实时日志 --since string 显示自某个timestamp之后的日志,或相对时间,如42m(即42分钟) --tail string 从日志末尾显示多少行日志, 默认是all -t, --timestamps 显示时间戳 --until string 显示自某个timestamp之前的日志,或相对时间,如42m(即42分钟) #查看指定时间后的日志,只显示最后100行: $ docker logs -f -t --since="2018-02-08" --tail=100 CONTAINER_ID #查看最近30分钟的日志: $ docker logs --since 30m CONTAINER_ID #查看某时间之后的日志: $ docker logs -t --since="2018-02-08T13:23:37" CONTAINER_ID 查看某时间段日志: $ docker logs -t --since="2018-02-08T13:23:37" --until "2018-02-09T12:23:37" CONTAINER_ID
进入容器内部# Docker内部 # /bin/bash 或者 /bin/sh #/bin/sh与/bin/bash虽然大体上没什么区别,但仍存在不同的标准 #-it的说明如下所示 OPTIONS说明: -d :分离模式: 在后台运行 -i :即使没有附加也保持STDIN 打开 -t :分配一个伪终端 $ sudo docker exec -it 容器ID /bin/bash
容期间的操作通过--link来连接当前容器与另一个已经存在容器,使他们能互相通信
语法 --link :alias
container-name/container-id为源容器的container-name/container-id,alias为源容器在link下的别名
如下的例子是kibana需要从elasticsearch获取相关的索引故此需要通信
docker run --name kibana --link=elasticsearch:test -p 5601:5601 -d kibana:7.2.0
容器与宿主之间的文件传递从容器中将文件拷贝出来的命令:dokcer cp 容器名称:容器目录 需要拷贝的文件或目录 宿主机向Docker容器传送文件: docker cp 本地文件的路径 container_id:
镜像下载与读取将镜像保存成tar文件夹
docker save [OPTIONS] IMAGE [IMAGE...]
实例:
将镜像 runoob/ubuntu:v3 生成 my_ubuntu_v3.tar 文档
docker save -o my_ubuntu_v3.tar.gz runoob/ubuntu:v3
从tar文件夹中上传镜像
docker load [OPTIONS]
OPTIONS 说明:
--input , -i : 指定导入的文件,代替 STDIN。
--quiet , -q : 精简输出信息。
示例:
docker load -i busybox.tar.gz
已建容器的挂载信息
docker inspect 容器ID/容器名称
如下binds 前面的/app/rancher/registries.yam是容器外的文件 对应容器内的文件/etc/rancher/k3s/registries.yam.
如下在binds中的是 通过 -v 容器外文件夹或者文件路径:容器内文件夹或者文件路径 来实现的.
如下的mounts 是直接使用 -v 容器外文件夹或者文件路径(省去了容器内的文件夹或者文件路径) 来默认挂载到 docker 容器内的
/var/lib/docker/volumes 文件夹下,后面的2层路径都是自动创建的以用于唯一性不同的挂在.
- source是容器内的路径
- destination是容器外的路径
docker container update 命令用于更新一个或多个容器的配置。
docker container update [OPTIONS] CONTAINER [CONTAINER...]
实例:
docker container update restart=unless-stopped 容器id可以有多个