docker常见基本命令

相关文章

  1. docker基本命令
  2. Dockerfile的基本命令
  3. docker-compose介绍
  4. docker-compose模板文件常用命令
  5. docker-compose命令

以上文章链接出自于个人博客Potato Blog,欢迎访问!!!!本文原地址参考docker基本命令

docker辅助命令

查看docker的信息

docker version	

查看更详细的信息

docker info

帮助命令

docker --help

Images 镜像命令

列出本地所有镜像

docker images
docker images -a           #列出所有镜像(包含中间映像层)
docker images -q           #只显示镜像id

列出指定名称的所有镜像

docker images 镜像名        #列出是该 镜像名 的所有镜像
docker images 镜像名 -a     #列出是该 镜像名 的所有镜像(包含中间映像层)
docker images 镜像名 -q     #列出是该 镜像名 的所有镜像的id

搜索镜像

docker search 镜像名

从仓库下载镜像

docker pull 镜像名[:TAG|@DIGEST]

删除镜像

docker image rm 镜像名|镜像id       #正常删除(运行过的镜像只能使用强制删除)
docker image rm -f 镜像名|镜像id    #强制删除

缩写: 
docker rmi 镜像名|镜像id
docker rmi -f 镜像名|镜像id

批量删除镜像

docker image  rm 镜像名1|镜像id1 镜像名2|镜像id2 .....      #正常删除 每个镜像之间由空格(运行过的镜像只能使用强制删除)
docker image  rm -f 镜像名1|镜像id1 镜像名2|镜像id2 .....   #强制删除 每个镜像之间由空格 
docker image  rm -f $(docker ps -aq)  #删除所有的镜像
docker image  rm -f $(docker images python -q)  #列出所有的python镜像的id,并将其批量删除

Contrainer 容器命令

列出所有的容器

docker ps -a     #查看所有的容器
docker ps -aq    #查看所有的容器id

列出所有正在运行的容器

docker ps

运行容器

docker run [OPTIONS] 镜像名	        #镜像名新建并启动容器
            --name 			#别名为容器起一个名字
            -d				#启动守护式容器(在后台启动容器)
            -p 				#映射端口号(宿主机):原始端口号(容器)  指定端口号启动
            --restart always            #docker容器总是启动

例:docker run -it --name mypython  -p 8000:8000 python
    docker run -d --name mypython  python
    docker run -d --name mypython --restart=always python

删除容器

docker rm -f 容器id|容器名               #强制删除容器
docker rm -f $(docker ps -aq)		#删除所有容器

开启|停止|关闭|重启|暂停容器

docker start 容器名字|容器id        #开启容器

docker stop 容器名字|容器id         #正常停止容器运行
docker start 容器名字|容器id        #立即停止容器运行
docker kill 容器名字|容器id         #杀死容器

docker restart 容器名字|容器id      #重启容器

docker pause 容器名字|容器id        #暂停容器
docker unpause 容器名字|容器id      #恢复容器

查看查看容器内部细节

docker inspect 容器名字|容器id   #查看容器内部细节

查看容器内进程

docker top 容器名字|容器id       #查看容器内的进程

查看容器的运行日志

docker logs [OPTIONS] 容器名字|容器id	  #查看容器日志
             -t			          #把宿主机的时间加到日志前
             -f			          #实时的日志打印
             --tail 数字	          #显示最后多少条
例子:
docker logs -t -f mypython
docker logs -t -f --tail 10 mypython   

设置容器自启动

docker update --restart=always 容器名字|容器id
                          no               #默认策略,在容器退出时不重启容器
	                      on-failure       #在容器非正常退出时(退出状态非0),才会重启容器
	                      on-failure:3     #在容器非正常退出时重启容器,最多重启3次
	                      always           #在容器退出时总是重启容器
	                      unless-stopped   #在容器退出时总是重启容器,但是不考虑在Docker守护进程启动时就已经停止了的容器

Contrainer容器 进阶 命令

进入容器内部

docker exec [options] 容器名字|容器id 容器内命令       #进入容器执行命令
		        -i		                     #以交互模式运行容器,通常与-t一起使用
                -t		                     #分配一个伪终端    
              /bin/bash                              #shell窗口  

例子:docker exec -it 容器名字|容器id /bin/bash

退出容器

exit		#退出容器

数据挂载

数据卷

用来实现容器中数据和宿主机中数据进行映射的(同步的)。
注:数据卷使用必须在容器首次启动时设置

1.使用绝对路径创建数据卷

这种方式会将容器路径的原始内容全部清空,始终以宿主机路径为主。

docker run -v 宿主机的路径:容器内的路径 镜像名    


docker run -v 宿主机的路径:容器内的路径:ro(只读) 镜像名


如果想要使用数据卷可以在容器启动时写如下命令
docker run 【-itd --name 容器名 -p 8000:8000】-v 宿主机的路径:容器内的路径 镜像名  此【】中的可以选择

注意

  • 宿主机路径必须是绝对路径
  • 宿主机目录会覆盖容器内目录内容,
  • 不指定ro(只读),宿主机改变会影响容器改变,且容器改变也会影响宿主机改变
  • 如果在设置数据卷时指定ro(只读)。代表日后容器内路径是只读的,宿主机改变会影响容器改变,但容器改变不会影响宿主机改变

2.使用别名方式设置数据卷

docker run -v 别名(英文):容器内路径 镜像名|镜像id

注意

  • 别名(英文)代表docker数据卷中别名,这个别名如果存在docker直接使用aa,不存在自动创建
  • 使用docker别名创建的是docker帮助管理
  • 使用别名方式保留容器路径原始内容,前提别名对应路径不能存在内容
  • 使用别名创建的数据卷 可以使用 find / -name 别名 查看数据卷的位置 一般是在/var/lib/docker/volumes/目录下,也可以使用docker inspect volume 数据卷名

PS:运行 docker inspect 容器id 命令 检查json串里有没有以下内容,如果有则证明卷挂载成功。
“Mounts”: [
{
“Type”: “bind”,
“Source”: “/hostDataValueme”,
“Destination”: “/containerDataValueme”,
“Mode”: “”,
“RW”: true,
“Propagation”: “rprivate”
}
]

3.创建一个数据卷别名

docker volume create 数据卷别名

4.查看所有数据卷

docker volume ls

5.查看数据卷详细信息

docker inspect volume 数据卷名称

6.删除数据卷

docker volume rm 数据卷名称

容器与宿主机互相传文件

容器   ---> 宿主机   docker cp 容器名字|容器id:容器内资源路径 宿主机目录路径  
宿主机 ---> 容器     docker cp 宿主机目录路径 容器名字|容器id:容器内资源路径   

docker网络

查看所有网络

docker network ls

创建网络

docker network create 网络名称

删除网络

docker network rm 网络名称
docker network prune       #删除所有的网络

将多个容器加入到指定网络中

将多个容器加入到指定网络中有以下两种方法

方法一:启动容器时明确指定容器使用那个网络

docker run  --network 网络名称 [options]  镜像名称|镜像id

例子:
docker run -d -p 8000:8000 --name mypython01 --network mynetwork01 python:3.9.12
docker run -d -p 8001:8000 --name mypython02 --network mynetwork01 python:3.9.12
此时容器mypython01 和 mypython02 就在一个网络中了

方法二:启动之后容器加入到某个网络中

docker network connect 网络名 容器名字|容器id

查看网络细节

docker network inspect 网络名称

容器打包成镜像

容器是可读可写的,基于这个特性我们就可以对容器进行自己深度定制,将修改后的容器打包成一个新的镜像,日后基于这个镜像运行成容器存在原始定制特性

docker commit -a="作者" -m="描述信息" 要打包的容器ID|容器名 打包后的镜像名称:Tag(版本)

镜像备份与恢复

打包镜像(镜像备份)


docker save 镜像名:tag -o  路径/名称.tar

载入镜像(镜像恢复)

docker load -i   路径/名称.tar

docker容器内系统

查看docker容器内的系统

cat /etc/issue

docker更换镜像源

Ubuntu 16.04+、Debian 8+、CentOS 7+

目前主流 Linux 发行版均已使用 systemd 进行服务管理,这里介绍如何在使用 systemd 的 Linux 发行版中配置镜像加速器。

请首先执行以下命令,查看是否在 docker.service 文件中配置过镜像地址。

systemctl cat docker | grep '\-\-registry\-mirror'

如果该命令有输出,那么请执行 $ systemctl cat docker 查看 ExecStart= 出现的位置,修改对应的文件内容去掉 --registry-mirror 参数及其值,并按接下来的步骤进行配置。

如果以上命令没有任何输出,那么就可以在 /etc/docker/daemon.json 中写入如下内容(如果文件不存在请新建该文件):

{
  "registry-mirrors": [
    "https://hub-mirror.c.163.com",
    "https://mirror.baidubce.com"
  ]
}

注意,一定要保证该文件符合 json 规范,否则 Docker 将不能启动。

之后重新启动服务。
systemctl daemon-reload
systemctl restart docker

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值