Docker常用命令

1. 增加Docker权限
#创建docker组
sudo groupadd docker
#添加{user}进入docker组
sudo gpasswd -a {user} docker
#重启docker服务
sudo systemctl restart docker
#接下来就可以使用你添加的用户{user}进行使用docker命令了
使用root用户执行如下命令,即可
sudo chmod a+rw /var/run/docker.sock
2. 启停Docker
启动docker : systemctl start docker  
停止docker : systemctl stop docker  
重启docker : systemctl restart docker  
查看docker的状态 : systemctl status docker 
开机启动docker: systemctl enable docker  
查看docker概要信息: docker info 
查看docker总体帮助文档: docker --help
3. 镜像命令
3.1 查询本地镜像 
docker images          列出本地主机上的镜像
docker images -a       列出本地所有的镜像(含历史映像层)
docker images -q       只显示镜像ID
3.2 搜索 DockerHub 远程仓库镜像 
docker search XX镜像   搜索某个镜像
docker search --limit 5 redis  搜索redis排名前五的镜像
3.3 从DockerHub 拉取/下载镜像
docker pull xx镜像:tag   下载对应版本的镜像(不写默认tag=latest最新的)
docekr pull redis:6.0.8  下载6.0.8版本的redis镜像
3.4 查看镜像所占的空间
docker system df       查看镜像/容器/数据卷所占的空间
3.5 删除镜像
docker rmi -f 镜像ID     强制删除单个镜像 
docker rmi -f 镜像名1:TAG 镜像名2:TAG   强制删除多个镜像  
docker rmi -f $(docker images -qa)   【删除全部镜像】 
3.6 虚悬镜像
仓库名、标签都是<none>的镜像,俗称虚悬镜像dangling image 
3.7 推送本地镜像到远程仓库(类似于git)
docker commit -m="描述信息" -a="作者" 容器ID 目标镜像名:[标签名]   提交镜像到本地
    【例】docker commit -m="第一次提交,添加vim命令" -a="dzg" f5e38h649dt  dzg/myubuntu:1.1 
docker login --username=xxx 远程仓库地址  登录远程仓库 
    【例】docker login --username=dzg registry.cn-hangzhou.aliyuncs.com  登录阿里云仓库    
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]  给镜像打标签  
    【例】docker tag cea1bb40441c registry.cn-hangzhou.aliyuncs.com/dzg/myubuntu:1.1 
docker push TARGET_IMAGE[:TAG]  推动镜像到目标仓库 
    【例】 docker push registry.cn-hangzhou.aliyuncs.com/dzg/myubuntu:1.1
4. 镜像命令
4.1 查询本地镜像 
docker images          列出本地主机上的镜像   
docker images -a       列出本地所有的镜像(含历史映像层) 
docker images -q       只显示镜像ID
4.2 搜索 DockerHub 远程仓库镜像
docker search XX镜像   搜索某个镜像 
docker search --limit 5 redis  搜索redis排名前五的镜像 
4.3 从DockerHub 拉取/下载镜像
docker pull xx镜像:tag   下载对应版本的镜像(不写默认tag=latest最新的)
docekr pull redis:6.0.8  下载6.0.8版本的redis镜像
4.4 查看镜像所占的空间
docker system df        查看镜像/容器/数据卷所占的空间
4.5 删除镜像
docker rmi -f 镜像ID     强制删除单个镜像
docker rmi -f 镜像名1:TAG 镜像名2:TAG   强制删除多个镜像
docker rmi -f $(docker images -qa)   【删除全部镜像】 
4.6 虚悬镜像 
仓库名、标签都是<none>的镜像,俗称虚悬镜像dangling image
4.7 推送本地镜像到远程仓库(类似于git)
docker commit -m="描述信息" -a="作者" 容器ID 目标镜像名:[标签名]   提交镜像到本地
【例】docker commit -m="第一次提交,添加vim命令" -a="dzg" f5e38h649dt  dzg/myubuntu:1.1

docker login --username=xxx 远程仓库地址  登录远程仓库
【例】docker login --username=dzg registry.cn-hangzhou.aliyuncs.com  登录阿里云仓库

docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]  给镜像打标签 
【例】docker tag cea1bb40441c registry.cn-hangzhou.aliyuncs.com/dzg/myubuntu:1.1

docker push TARGET_IMAGE[:TAG]  推动镜像到目标仓库
【例】 docker push registry.cn-hangzhou.aliyuncs.com/dzg/myubuntu:1.1 
5. 容器命令
5.1 新建+启动容器 
docker run -d  -p 8888:8080 --name my_tomcat tomcat:8.5.5 后台启动tomcat容器 【推荐】 
docker run -it -p 8888:8080 --name my_tomcat tomcat:8.5.5 /bin/bash 交互模式启动tomcat容器     

【参数说明】 
-d: 后台运行容器并返回容器ID,也即启动守护式容器(后台运行); 
-i:以交互模式运行容器,通常与 -t 同时使用; 
-t:为容器重新分配一个伪输入终端,通常与-i同时使用,也即启动交互式容器(前台有伪终端,等待交互);        
-p: 指定端口映射,小写p 
-P: 随机端口映射,大写P 
--name="容器新名字": 为容器指定一个名称; 
/bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash
5.2 查看本机容器
docker ps         列出当前所有正在运行的容器
docker ps -a      列出当前所有正在运行的容器+历史上运行过的
docker ps -q      静默模式,只显示容器编号
docker ps -l      显示最近创建的容器
docker ps -n      显示最近n个创建的容器
【例】 docker ps -aq   查看历史与正在运行的所有容器id
5.3 启动/停止/强制停止/重启容器
docker start 容器ID/容器名   启动容器
docker stop  容器ID/容器名   停止容器
docker kill  容器ID/容器名   强制停止容器
docker restart 容器ID/容器名 重启容器
5.4 删除容器
docker rm 容器ID   删除已停止的容器
docker rm -f $(docker ps -a -q)   【一次性删除多个容器实例】 慎用!
docker ps -a -q | xargs docker rm  【一次性删除多个容器实例】
5.5 进入容器
docker exec -it 容器id /bin/bash   进入容器
docker attach 容器ID               重新进入容器
【说明】
attach 直接进入容器启动命令的终端,不会启动新的进程用exit退出,会导致容器的停止。
exec 是在容器中打开新的终端,并且可以启动新的进程用exit退出,不会导致容器的停止。
5.6 退出容器
exit       run进去容器,exit退出,容器停止
ctrl+p+q   run进去容器,ctrl+p+q退出,容器不停止
5.7 查看容器内部信息
docker logs 容器ID     查看容器日志
docker top 容器ID      查看容器内运行的进程
docker inspect 容器ID  查看容器内部细节
5.8 导入与导出
 (1) docker cp  容器ID:容器内路径 目的主机路径   从容器内拷贝文件到主机上
  【例】 docker cp f5fa58c8c1c4:/usr/local/container.txt  /home/test.txt
(2) docker export 容器ID > 文件名.tar   导出容器为一个tar包
  【例】docker export f5wd24skf45 > abcd.tar.gz
(3) cat 文件名.tar | docker import - 镜像用户/镜像名:镜像版本号  
  【例】 cat abcd.tar.gz |docker import - dzg/ubuntu:2.2 
5.9 容器卷 【重点】
docker run -it --privileged=true -v /宿主机绝对路径目录:/容器内目录  镜像名 (默认读写)
docker run -it --privileged=true -v /宿主机绝对路径目录:/容器内目录:ro  镜像名 (只读)
docker run -it  --privileged=true --volumes-from 父类  --name u2 ubuntu  容器2继承容器1的卷规则

【例】
docker run -d -p 3307:3306
--privileged=true
-v /home/dongzhigang/mysql/log:/var/log/mysql 
-v /home/dongzhigang/mysql/data:/var/lib/mysql 
-v /home/dongzhigang/mysql/conf:/etc/mysql/conf.d
-e MYSQL_ROOT_PASSWORD=123456 
--name mysql8 mysql:latest
 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值