docker常见命令

docker常见命令

什么是容器
Linux系统提供了Namespace和Cgroup技术实现环境隔离和资源控制
Docker镜像(image)
Docker 把应用程序及其依赖,打包在 image 文件里面.只有通过这个文件,才能生成 Docker 容器.
Image 文件可以看作是容器的模板. Docker 根据 image 文件生成容器的实例. 同一个 image 文件,可以生成多个同时运行的容器实例.

Image 是二进制文件. 实际开发中, 一个 image 文件往往通过继承另一个 image 文件, 加上一些个性化设置而生成.
举例来说,你可以在 centos 的 image 基础上,往里面加入 Apache 服务器, 形成你的 image.

Image 文件是通用的, 一台机器的 image 文件拷贝到另一台机器, 照样可以使用.
一般来说, 为了节省时间, 我们应该尽量使用别人制作好的 image 文件, 而不是自己制作.
即使要定制, 也应该基于别人的 image 文件进行加工, 而不是从零开始制作.

为了方便共享,image 文件制作完成后,可以上传到网上的仓库 .Docker 的官方仓库 Docker Hub 是最重要、最常用的 image 仓库.

在这里插入图片描述

查看本机的image

# docker image ls
# docker images

获取image

# docker search centos     # 此命令会在docker官方仓库查找所需镜像,速度较慢.        
# docker pull centos         # 从默认仓库拉取centos镜像最新版

Docker加速

方法1: 修改 /etc/docker/daemon.json 文件并添加上 registry-mirrors 键值并重启docker.

# vim  /etc/docker/daemon.json 
{
    "registry-mirrors":  ["https://pf5f57i3.mirror.aliyuncs.com"]
}
# systemctl daemon-reload
# systemctl restart docker

PS. 可以登录阿里云控制台, 搜索容器镜像服务, 来获取自己的镜像加速地址

方法2: 修改docker服务的启动命令:在启动时传入"–registry-mirror=xxx"参数实现

# vim /usr/lib/systemd/system/docker.service
    ExecStart=/usr/bin/dockerd --registry-mirror=https://pf5f57i3.mirror.aliyuncs.com
# systemctl daemon-reload
# systemctl restart docker

删除image

# docker image  rm  镜像           #镜像指 镜像ID 或 镜像名称:tag
# docker rmi  镜像

查看image的详细信息
# docker inspect  [选项]  镜像

Docker容器(container)

Docker 利用容器来运行应用. 容器是从镜像创建的运行实例. 它可以被启动, 开始, 停止, 删除.
每个容器都是相互隔离的、保证安全的平台. 可以把容器看做是一个简易版的 Linux 环境(包括 root 用户权限、
进程空间、用户空间和网络空间等)和运行在其中的应用程序.
*注: 镜像是只读的,容器在启动的时候创建一层可写层作为最上层. docker容器启动后,会生成一个容器ID号,一旦容器内前台运行的程序结束后,容器就会关闭.
如果不希望容器自动结束,我们需要在容器启动时给它一个前台运行的,不会自动结束的进程.

查看容器

# docker ps               # 查看正在运行的容器
# docker ps  -a          # 查看所有容器

启动容器

# docker run -itd  -h centos.docker.qf.com --name centos centos
常用选项:
    -i               # 允许你对容器内的标准输入 (STDIN) 进行交互
    -t               # 在新容器内指定一个伪终端或终端
    -d               # 在后台运行容器,返回容器ID
    -h               # 指定容器的主机名,如果不指定,会随机生成一个
    --rm             # 容器停止后删除掉,默认不会删除
    --name                # 指定容器的名称
    --network             # 指定容器的网络连接方式, 默认为NAT. 
    --ip                      # 指定容器的IP地址
    -p <宿主端口>:<容器端口>    # 端口映射,将容器指定端口映射到宿主机的指定端口. 可以用多个-p选项指定多个端口映射
    -p 80                      # 将容器的80端口映射到宿主机的随机端口
    -P                         # 将容器的所有端口映射到宿主机的随机端口
    -v <宿主目录>:<容器目录>     # 将宿主机的指定目录映射到容器的指定目录
    --privileged               # 需要修改某些特定的参数需要加上此选项, 正常运行一个容器不建议开放这个权限

其他容器操作命令

# docker create [选项] 镜像                         # 创建一个容器但不运行,选项基本和run命令相同
# docker ps [-a]	                 # 查看运行的容器 [-a 所有容器]
# docker top 容器                                               # 查看容器的进程信息
# docker stop|start|restart|kill 容器          # 启停容器
# docker pause|unpause  容器                  # 暂停|恢复容器
# docker rm 容器	                                       # 删除容器	
# docker rm `docker ps -a -q`              # 删除所有容器
# docker logs 容器	                                         # 查看容器日志
# docker cp  container:src_file  dst_path   # 将容器中的文件复制到宿主机上
# docker cp src_file  container:dst_path    # 将宿主机上的文件复制到容器中
# docker inspect  [选项]  容器                    # 以json格式显示出容器的具体信息

连接容器

对于正在运行的容器,我们可以在宿主机上连接容器

# docker exec -it centos /bin/bash         # 可用exit命令退出,不影响容器
# docker attach centos                     # 通过attach连接容器,使用exit退出后容器会关闭,当多个窗口同时使用该命令进入该容器时,

所有的窗口都会同步显示.如果有一个窗口阻塞了,那么其他窗口也无法再进行操作
# 若不想退出后停止容器,可通过快捷键ctrl+pq退出

容器 —> 镜像
对容器所作的修改保存在容器中, 一旦容器被删除了, 修改也没有了.
为了永久保存, 可以将容器打包成镜像:

docker commit -m “描述信息” 容器 镜像名[:tag]

查看docker容器的网络

dokcer network ls

docker批量删除容器、镜像、空镜像(虚悬镜像)

1、删除所有容器

docker rm [-f] $(docker ps -qa)
#根据容器的状态,删除Exited状态的容器
docker rm $(docker ps -qf status=exited)

2、删除所有镜像

docker rmi [-f] $(docker images -qa)

3、按条件删除镜像

docker rmi [-f] $(docker images -q | awk '/^<none>/ { print $3 }')

镜像名包含关键字

docker rmi --force [-f] $(docker images | grep doss-api | awk '{print $3}')  //其中doss-api为关键字

4 删除REPOSITORY、TAG为none的镜像(虚悬镜像)

这类无标签镜像也被称为 虚悬镜像(dangling image) ,可以用下面的命令专门显示这类镜像:

 docker image ls -f dangling=true

一般来说,虚悬镜像已经失去了存在的价值,是可以随意删除的,可以用下面的命令删除

docker rmi $(docker images -q -f dangling=true)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值