Docker常用命令总结~

1513 篇文章 61 订阅
1425 篇文章 54 订阅

1、关于镜像

获取镜像
docker pull [image name] [option:tag]

//获取postgres镜像(没有设置镜像版本号则默认获取最新的,使用`latest`标记)

docker pull postgres

or

docker pull postgres:11.14
列出本地镜像
docker images
指定镜像启动一个容器
//运行postgres,最后一个postgres代表使用的镜像名称

//POSTGRES_PASSWORD=postgres :环境变量POSTGRES_PASSWORD,代表设置密码为postgres

//postgres有关的其他环境变量可以参考:https://hub.docker.com/_/postgres

docker run -d --restart always --name postgre- e POSTGRES_PASSWORD=postgres -p 5432:5432 postgres
指定镜像启动并进入容器
docker run -it [image name] /bin/bash

ordocker run -i -t [image name] /bin/bash

伪终端,输入exit退出容器

2、利用Dockerfile创建镜像

创建目录和Dockerfile文件

//linux命令:创建目录

mkdir [director name]  ----mkdir study

//进入目录

cd [director name] ----cd study

//创建文件

touch [file name] ----touch Dockerfile

编写Dockerfile

//编辑文件vi [file name] 按 `insert` or `i` 进入编辑状态

vi Dockerfile
 

编写好的Dockerfile文件 , 按esc,输入 :wq  保存并退出

构建镜像

//“.” 是 Dockerfile 所在的路径(当前目录),也可以替换为一个具体的 Dockerfile 的路径

docker build .

删除本地镜像

*注意:

在删除镜像之前要先用 docker rm 删掉依赖于这个镜像的所有容器

 
docker rmi [image id]

例如:docker rmi 07e2ee723e2d (07e2ee723e2d 为镜像id)

删除所有镜像
docker rmi -f $(docker images -qa)
关键字删除镜像
docker rmi $(docker images | grep "关键字")
删除未被使用的镜像
docker image prune -a

3、关于容器

启动容器
//基于镜像启动容器

docker run --name [container name] [image name]

//启动容器后台运行

docker run --name[container name] -d [image name]

//启动停止的容器 (可以写多个)

docker start [container name or id]

//重启容器,(会把运行中的容器停止,再重新启动,可以写多个)

docker restart [container name or id]
查看启动的容器
docker ps
查看所有容器
docker ps -a
进入启动后的容器
docker exec -it[container name or container id] /bin/bash

//缺点:当多个窗口同时attach同一个容器时,所有窗口都会同步显示.

//当某个窗口因命令阻塞时,其他窗口也无法执行操作.

docker attach [container name or id]

//exec 和 attach的区别

attach 不会在容器中创建进程执行额外的命令,只是附着到容器上.

exec会在运行的容器上创建进程执行新的命令.

//nsenter的方式

//要下载nsenter 的工具 util-linux

cd /tmp

wget https://www.kernel.org/pub/linux/utils/util-linux/v2.24/util-linux-2.24.tar.gz

tar -xvf util-linux-2.24.tar.gz

cd util-linux-2.24./configure --without-ncurses make nsenter && sudo cp nsenter /usr/local/bin

docker inspect -f {{.State.Pid}} [container id]

nsenter --target [上一个命令的输出内容] --mount --uts --ipc --net --pid

查看容器日志
docker logs -f [container id or name]
停止容器
docker stop [container name or id]
删除容器

//只能删除未运行的容器

docker rm [container name or id]

例如:docker rm 6516c6b03ccd (6516c6b03ccd 为 容器id)

或者  docker rm redis (redis 为 容器名称)
 
强制删除容器(包括运行的)
docker stop $(docker ps -q)
停用所有运行中的容器
docker rm $(docker ps -aq)
删除全部已经停止的容器
docker rm $(docker ps -aq)
停用并删除所有容器
docker stop $(docker ps -q) & docker rm $(docker ps -aq)

4、其他

查看docker版本

docker version

运行docker

docker run -d -p 80:80 docker/getting-started

OptionsExplain

-d

在后台运行容器

-p

设置端口映射

-a

获取所有/指定更新的用户信息

--restart always

docker 启动时自动启动容器

--name

设置启动的容器名称

-e

指定环境变量的值

-m

指定提交的说明信息

-i

以交互模式运行容器,让容器的标准输入保持打开,通常与 -t 同时使用

-t

为容器重新分配一个伪输入终端,并绑定到容器的标准输入上,通常与 -i 同时使用

-f

通过 SIGKILL 信号强制删除一个运行中的容器 or 实时查看日志

-l

移除容器间的网络连接,而非容器本身

-v

删除与容器关联的卷 or 创建一个数据卷并挂载到容器里

:ro

设置挂载数据卷的权限为只读

-P

随机映射一个 49000~49900 的端口到内部容器开放的网络端口

-rm

用-rm 启动的容器  容器终止时会自动删除,不能和-d一起使用

--link

使容器之间进行安全的交互

-b BRIDGE or –bridge=BRIDGE

指定容器挂载的网桥

–bip=CIDR

定制 docker0 的掩码

–icc=true or false

是否支持容器之间进行通信

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走! 

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述

  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值