一、启停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
二、镜像命令
1、 查询本地镜像
docker images 列出本地主机上的镜像
docker images -a 列出本地所有的镜像(含历史映像层)
docker images -q 只显示镜像ID
2、搜索 DockerHub 远程仓库镜像
docker search XX镜像 搜索某个镜像
docker search --limit 5 redis 搜索redis排名前五的镜像
3、从DockerHub 拉取/下载镜像
docker pull xx镜像:tag 下载对应版本的镜像(不写默认tag=latest最新的)
docekr pull redis:6.0.8 下载6.0.8版本的redis镜像
4、查看镜像所占的空间
docker system df 查看镜像/容器/数据卷所占的空间
5、删除镜像
docker rmi -f 镜像ID 强制删除单个镜像
docker rmi -f 镜像名1:TAG 镜像名2:TAG 强制删除多个镜像
docker rmi -f $(docker images -qa) 【删除全部镜像】
6、虚悬镜像
仓库名、标签都是<none>的镜像,俗称虚悬镜像dangling image
7、推送本地镜像到远程仓库(类似于git)
(1)docker commit -m="描述信息" -a="作者" 容器ID 目标镜像名:[标签名] 提交镜像到本地
【例】docker commit -m="第一次提交,添加vim命令" -a="dzg" f5e38h649dt dzg/myubuntu:1.1
(2)docker login --username=xxx 远程仓库地址 登录远程仓库
【例】docker login --username=dzg registry.cn-hangzhou.aliyuncs.com 登录阿里云仓库
(3)docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG] 给镜像打标签
【例】docker tag cea1bb40441c registry.cn-hangzhou.aliyuncs.com/dzg/myubuntu:1.1
(4)docker push TARGET_IMAGE[:TAG] 推动镜像到目标仓库
【例】 docker push registry.cn-hangzhou.aliyuncs.com/dzg/myubuntu:1.1
三、容器命令
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
2、查看本机容器
docker ps 列出当前所有正在运行的容器
docker ps -a 列出当前所有正在运行的容器+历史上运行过的
docker ps -q 静默模式,只显示容器编号
docker ps -l 显示最近创建的容器
docker ps -n 显示最近n个创建的容器
【例】 docker ps -aq 查看历史与正在运行的所有容器id
3、启动/停止/强制停止/重启容器
docker start 容器ID/容器名 启动容器
docker stop 容器ID/容器名 停止容器
docker kill 容器ID/容器名 强制停止容器
docker restart 容器ID/容器名 重启容器
4、删除容器
docker rm 容器ID 删除已停止的容器
docker rm -f $(docker ps -a -q) 【一次性删除多个容器实例】 慎用!
docker ps -a -q | xargs docker rm 【一次性删除多个容器实例】
5、进入容器
docker exec -it 容器id /bin/bash 进入容器
docker attach 容器ID 重新进入容器
【说明】
attach 直接进入容器启动命令的终端,不会启动新的进程用exit退出,会导致容器的停止。
exec 是在容器中打开新的终端,并且可以启动新的进程用exit退出,不会导致容器的停止。
6、退出容器
exit run进去容器,exit退出,容器停止
ctrl+p+q run进去容器,ctrl+p+q退出,容器不停止
7、查看容器内部信息
docker logs 容器ID 查看容器日志
docker top 容器ID 查看容器内运行的进程
docker inspect 容器ID 查看容器内部细节
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
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
版权声明:本文为m0_62676056原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。