docker命令

Docker

什么是Docker

Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

Docker 包括三个基本概念:
镜像(Image):用于创建 Docker 容器的模板
容器(Container):容器是独立运行的一个或一组应用,是镜像运行时的实体。
仓库(Repository):一个代码控制中心,用来保存镜像。

Docker 网站:
docker 官网: http://www.docker.com
帮助文档链接: https://docs.docker.com/
docker 镜像: https://hub.docker.com/
docker 中文网站: http://www.docker.org.cn/

docker镜像管理

一.查询镜像
1.查询<name>镜像)
docker search <name>
2.搜索点赞100个以上的镜像
docker search --filter=stars=100 <name>

二.拉取镜像
docker pull <name>:<version> (拉取<name>:<version> 镜像)

三.查看本地镜像
docker images
ls /var/lib/docker/overlay2/ (镜像存储路径)

四.显示镜像详细信息
docker inspect alpine

五.单个镜像导出
docker save <name>:<version> -o ubuntu.tar
docker save <name>:<version> >  ubuntu.tar

六.镜像批量导出
1.批量全部单个打包
docker images | awk 'NR!=1{print $1,$2}' | while read repo tag ;do docker save $repo:$tag -o /opt/$repo-$tag.tar ;done
for i in docker image ls --format "{{.Repository}}:{{.Tag}}"docker image ls --format "{{.Repository}}:{{.Tag}}";do docker save $i -o echo $i|cut -d: -f1echo $i|cut -d: -f1.tar ;done

2.批量全部组合打包
docker save docker images -qadocker images -qa -o all.tar
docker save docker images | awk 'NR!=1{print $1":"$2}'docker images | awk 'NR!=1{print $1":"$2}' -o all.tar
docker image save docker image ls --format "{{.Repository}}:{{.Tag}}"docker image ls --format "{{.Repository}}:{{.Tag}}" -o all.tar

七.导入镜像(压缩后的也可以直接导入)
docker load -i <name>.tar
docker load <  <name>.tar.gz

八.删除镜像
1.删除标签
docker rmi <name>:<version>  
2.删除镜像慎用
docker rmi <IMAGE ID>  
3.强制删除(若镜像被容器占用,则是假删除,实际不释放空间,除非删除容器才会释放删除镜像)
docker rmi -f <IMAGE ID> 
4.删除所有镜像
docker rmi -f docker images -qdocker images -q
5.删除不使用的镜像
docker image prune -a
6.删除<none>:<none>的镜像
docker image prune

九.镜像打标签
docker tag <name>:<version> <new name>:<new version>

十.构建镜像
1.基于运行起来的容器构建镜像(描述test,作者sh,指定CMD命令为/bin/bash)
docker commit -m "test" -a "sh" -c "CMD /bin/bash" <container> <image>:<tag> 
2.基于Dockerfile构建镜像(Dockerfile文件名按照规范命名,构建命令是只有先当前目录,否则则要写文件名)
docker build -t <image>:<tag> .
docker build 说明:
PATH | URL | - #可以使是本地路径,也可以是URL路径。若设置为 - ,则从标准输入获取Dockerfile的内容
-f, --file string #Dockerfile文件名,默认为 PATH/Dockerfile
--force-rm #总是删除中间层容器,创建镜像失败时,删除临时容器
--no-cache #不使用之前构建中创建的缓存
-q --quiet=false #不显示Dockerfile的RUN运行的输出结果
--rm=true #创建镜像成功时,删除临时容器
-t --tag list #设置注册名称、镜像名称、标签。格式为 <注册名称>/<镜像名称>:<标签>(标签默认为latest)

docker容器管理

一.运行容器
docker run [选项] [镜像名] [shell命令] [参数]
#选项:
-i, #--interactive Keep STDIN open even if not attached,通常和-t一起使用
-t, #--tty 分配pseudo-TTY,通常和-i一起使用,注意对应的容器必须运行shell才支持进入
-d, #--detach Run container in background and print container ID,台后运行,默认前台
--name #string Assign a name to the container 指定容器名称
--h, #--hostname string Container host name   指定容器hostname
--rm #Automatically remove the container when it exits 运行完后删除容器
-p, #--publish list Publish a container's port(s) to the host 指定端口映射
-P, #--publish-all Publish all exposed ports to random ports 随意映射端口
--dns #list Set custom DNS servers 指定dns
--entrypoint #string Overwrite the default ENTRYPOINT of the image 指定entrypoint值覆盖原dockerfile中的entrypoint
--restart #policy 配置重启策略
--privileged #Give extended privileges to container  给容器真root权限慎用,会影响宿主机
-e, --env=[] #Set environment variables 修改容器的环境变量
--env-file=[] #Read in a line delimited file of environment variables 以文件方式修改容器环境变量
1.启动容器时会自动随机字符作为容器名
docker run <image>
2.基于image镜像运后台行名为name的容器并实现开机自启动,映射宿主机和容器的端口
docker run -d --name <name> --restart=always -p <sport>:<cport> <image>
3.运行一个容器并执行sleep 1000命令,命令结束退出后自动删除容器
docker run --rm <image> sleep 1000 

二.查看容器信息
1.查看所有状态的容器
docker ps -a
2.查看正在运行的容器(包含被挂起的容器)
docker ps
3.查看所有容器并显示他们的大小
docker ps -as
4.查看所有容器的
docker ps -aq
5.查看所有退出的容器
docker ps -f 'status=exited'
5.查看所有正在运行的容器
docker ps -f 'status=running'
5.显示容器内进程
docker top <container>
6.显示容器资源使用情况
docker stats <container>
7.只显示一次容器资源使用情况
docker stats --no-stream <container>
8.查看容器的详细信息
docker inspect <container>
9.查看容器内指定信息info(注意替换这里的info指定为要查的选项)
docker inspect -f "{{.info}}"  <container>

三.删除容器
1.删除指定容器
docker rm <container>
2.强制删除容器
docker rm -f <container>
3.强制删除所有容器(慎用,一般用于测试)
docker rm -f docker ps -qadocker ps -qa

四.容器的启停管理
1.启动容器
docker start <container>
2.关闭容器
docker stop <container>
3.重启容器
docker restart <container>
4.挂停止容器
docker pause <container>
5.解除挂起状态
docker unpause <container>

五.给容器发信号
1.发送信号关闭容器
docker kill <container>

六.进入正在运行的容器
1.以bash类型进入容器
docker exec -it <container> bash

七.暴露端口
1.宿主机随机映射端口
docker run -d  --name <name> -P <container>
2.指定端口映射
docker run -d  --name <name> -p 80:80 <container>

八.指定DNS
1.指定多个dns
docker run  --dns 1.1.1.1 --dns 8.8.8.8 <container>

九.指定domain
1.指定多个domain
docker run --dns-search a.com --dns-search b.com <container>

十.拷贝文件
1.宿主机文件拷贝的容器的根目录
docker cp /etc/hosts  <container>:/
2.容器内文件拷贝的宿主机当前目录
docker cp <container>:/etc/hosts . 

十一.传递环境变量
1.传递MySQL环境变量(环境变量必须时Dockerfile内提前写好的才能替换)
docker run --name mysql-test1 -v /data/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=wordpress -e MYSQL_USER=wpuser -e MYSQL_PASSWORD=123456 -d -p 3306:3306 mysql:5.7.30 #传递环境变修改root密码创建数据库,创建数据库用户和密码

十二.清除不再使用的容器
1.慎用,删除不使用的容器
docker system prune 

Docker持久化

一.匿名卷
1.指定容器挂载目录,宿主机自动生成随机编号的数据卷进行挂载
docker run -v <dir> <image>:<tag>

二.命名卷
1.指定数据卷名称和容器挂载目录进行挂载(数据卷这里可以自动创建也可以使用docker volume create 创建)
docker run -v <volumename>:<dir> <image>:<tag>

三.目录挂载
1.指定宿主机目录和容器目录进行挂载
docker run -v <sdir>:<cdir> <image>:<tag>

四.数据卷容器
1.指定一个正在运行的容器,和他进行同样的持久化配置
docker run -volumes-from <container> <image>:<tag>

Docker网络管理

一.bridge(默认)
1.默认模式容器网卡桥接到docker0上,可以不写命令指定
docker run --network bridge <image>:<tag>

二.host
1.和宿主机使用同一个网卡,网络配置
docker run --network host <image>:<tag>

三.None
1.没有网卡和网络配置
docker run --network None <image>:<tag>

四.container
1.和另一个正在运行容器使用同一个网卡和网络配置
docker run -d --network container:<container>  <image>:<tag>

五.自定义模式
1.自定义网络模式
docker network create --subnet <net> --gateway <gateway> <netname>
docker run --network <netname> <image>:<tag>

Docker Compose

docker-compose --help
Define and run multi-container applications with Docker.
Usage:
docker-compose [-f <arg>...] [options] [COMMAND] [ARGS...]
docker-compose -h|--help
#选项说明:
-f,–file FILE #指定Compose 模板文件,默认为docker-compose.yml
-p,–project-name NAME #指定项目名称,默认将使用当前所在目录名称作为项目名。
--verbose #显示更多输出信息
--log-level LEVEL #定义日志级别 (DEBUG, INFO, WARNING, ERROR, CRITICAL)
--no-ansi #不显示ANSI 控制字符
-v, --version #显示版本
#以下为命令选项,需要在docker-compose.yml|yaml 文件所在在目录里执行
config -q #查看当前配置,没有错误不输出任何信息
up #创建并启动容器
build #构建镜像
bundle #从当前docker compose 文件生成一个以<当前目录>为名称的json格式的Docker Bundle 备
份文件
create #创建服务
down #停止和删除所有容器、网络、镜像和卷
events #从容器接收实时事件,可以指定json 日志格式
exec #进入指定容器进行操作
help #显示帮助细信息
images #显示镜像信息
kill #强制终止运行中的容器
logs #查看容器的日志
pause #暂停服务
port #查看端口
ps #列出容器
pull #重新拉取镜像,镜像发生变化后,需要重新拉取镜像
push #上传镜像
restart #重启服务
rm #删除已经停止的服务
run #一次性运行容器
scale #设置指定服务运行的容器个数,新版已废弃
start #启动服务
stop #停止服务
top #显示容器运行状态
unpause #取消暂定
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值