目录
1.1 docker启动 systemctl start docker
1.2 docker关闭 systemctl stop docker
1.3.docker重启 systemctl restart docker
1.4 docker基本信息 docker info
1.5 docker状态信息 systemctl status docker --包括启用状态
1.6 docker的版本信息 docker version
1.7 docker的命令集合 docker --help
2.docker常用操作
2.1 docker权限添加给普通用户 先将用户添加到组,然后刷新组
[root@t t]# sudo gpasswd -a 指定用户账号 docker
正在将用户“ggt”加入到“docker”组中
[root@t t]# newgrp docker
2.2.镜像相关
2.2.1 查看所有镜像 docker images
REPOSITORY | 镜像的仓库源----镜像名称 |
TAG | 镜像的标签(版本),一个镜像有多个版本,用REPOSITORY:TAG来定义不同版本的镜像 |
DIGEST | 摘要信息,加--digests的时候展示 |
IMAGE ID | 镜像唯一id |
CREATED | 镜像创建时间 |
SIZE | 镜像的大小,单位:M |
可选参数options:
-a | 展示全部镜像,包括中间层 |
-q | 只展示镜像id |
-qa | 展示全部镜像的id |
--digests | 显示镜像的摘要信息 |
--no-trunc | 显示镜像的完整信息 |
2.2.2 搜索镜像 docker search redis镜像名称 从https://hub.docker.com/搜索,
NAME | 镜像名称 |
description | 镜像描述 |
stars | 收藏数 |
official | 是否docker官方发布 |
automated | 是否自动构建 |
可选参数options:
--no-trunc | 显示完整的镜像描述 | docker search centos --no-trunc |
-f | 列出收藏数不小于指定数值的镜像 | docker search centos -f stars=40 |
--limit | 展示的镜像数量 | docker search centos --limit 5 |
--help | 不懂就看这个 | docker search --help |
2.2.3 下载镜像 docker pull 不加tag默认拉取最新的版本
2.2.4 删除镜像 docker rmi 删除单个docker rmi 镜像名称,不加tag默认删除最新版本
2.2.5 删除多个 docker rmi 镜像名称 镜像名称 镜像名称
2.2.6 强制删除正在运行的镜像 docker rmi -f 镜像名称
2.2.7 强制删除全部镜像 docker rmi -f $(docker images -qa)
2.3 docker 容器操作命令
2.3.1 运行镜像 docker run --name 容器自命名 image:tag/IMAGE ID
可选options:
--name | 自定义容器名称,如果不自定义则docker自己生成 | |
-it | 以交互模式(启动容器吼直接进入容器,centos常用)运行容器,并为容器分配一个伪输入终端 | docker run -it --name centos-t1 centos:7 |
-d | 后台运行程序 | docker run -di --name c2 centos:7(attach得时候进不去) |
-p | 表示linux服务器与docker容器中的端口映射,默认情况下镜像运行生成的容器中的端口是与外界隔绝的,必须要通过端口映射,才可以访问(测试 时tomcat最新版不可以需要发布项目后才可以访问,但是8.5.32版本可以直接访问tomcat默认页面) | docker run --name tomcat-t1 -d -p 8080:8080 feba8d001e3f |
-v | 容器挂载:将主机目录与容器目录映射,然后实现数据文件的双向自动同步(同步文件夹中的文件会以主机为主,如果主机没有,容器初始化有,结果是容器中的文件夹会被清空,现在知道的解决办法是先把容器中的对应文件夹文件copy到主机对应目录) | 单:docker run -it -v /home/ggt/Documents:/home/gz centos:7 多(一对多,改一其他都会改):docker run -it -v /home/ggt/Documents:/home/gz -v /home/ggt/Documents:/home/gz2 centos:7 多(多对多):docker run -d --name c2 -p 80:8080 -v /home/ggt/tomcat/webapps:/usr/local/tomcat/webapps -v /home/ggt/tomcat/conf:/usr/local/tomcat/logs -v /home/ggt/tomcat/conf:/usr/local/tomcat/conf tomcat:8.5.32 容器只读(:ro)(多单可用):docker run -it -v /home/ggt/Documents:/home/gz:ro centos:7 |
。。。 | 还有很多 |
2.3.2 启动容器 docker start CONTAINER ID/容器名称 启动是对已运行过但是停止的容器来说的,运行是对下载的镜像来说的,启动只能启动某一个容器,但是可以对同一个镜像运行多次产生不同的容器,,,,,拿centos举例,如果centos在运行的时候未加-i,那么启动是没有办法后台运行的,也没有办法进入容器的,所以这种的在启动的时候最好是加上-i,也可能是我没有找到方法(看到docker start --help中有进入的命令但是使用是无效的,可能也是需要在运行的时候提前设置好交互模式以及分配伪终端)
2.3.3 重启容器 docker restart CONTAINER ID/容器名称
2.3.4 查看容器列表 docker ps -a -a:指的是查看全部(启动与停止未启动的还有被创建未启动的),不加-a只查看运行中的
2.3.5 停止容器 docker stop CONTAINER ID/容器名称
2.3.6 删除容器 docker rm -f CONTAINER ID/容器名称 -f指的是是否强制删除,比如删除正在运行中的 同时删除多个的时候在后边加空格然后CONTAINER ID/容器名称
2.3.7 进入容器 docker attach CONTAINER ID/容器名称 、
2.3.8 退出容器 exit
2.3.9 查看容器日志 docker logs CONTAINER ID/容器名称
2.3.10 重命名容器 docker rename centos-t1 centos-t2 centos-t1:原容器名称 centos-t2:新容器名称
2.3.11 执行容器命令 docker exec c1 ls -l tmp c1:容器名称 执行容器命令,然后自动退出,不会打开伪终端 docker exec -it tomcat-t1 /bin/bash tomcat-t1:容器名称,会进入容器
2.3.12 复制文件 docker cp 源 目的 移入容器:docker cp /tmp/说明.docx c1:/tmp 移除容器:docker cp c1:/tmp/1.docx /tmp
2.3.13 生成镜像 docker commit -a='作者' -m='备注' tomcat-t2 tomcat8:c-t tomcat-t2:运行中的容器名称 tomcat8:要生成的镜像名称 c-t:新生成的镜像tag
2.3.14 推送上传镜像到hub.docker.com docker push username/repository:tagname 在第一次推送的时候首先要做准备工作
2.3.14.1 注册hub.docker.com账号
2.3.14.2 创建仓库 (这里仓库可以创建多个,仓库名最好和上传镜像的名字一样或者就是原有的名字比如tomcat)
2.3.14.3 对开发完的镜像打标签 docker tag local-image:tagname new-repo:tagname 示例:docker tag tomcat:8.5.33 shd/tomcat:8.5.33
2.3.14.4 将镜像推送上去 docker push new-repo:tagname 示例:docker push shd/tomcat:8.5.33 shd:账号 tomcat:仓库名称 8.5.33:tag
2.3.14.1 遇到的问题:镜像名称修改时一定要改成 账号/仓库名(:标签) 否则会提示denied: requested access to the resource is denied
2.3.15 推送上传镜像到阿里云
2.3.15.1 首先肯定是创建账号、登陆、找到并进入容器镜像服务、创建命名空间、在某个命名空间下创建仓库
2.3.15.2 使用,点击创建好的仓库后边的管理连接,进入下边界面,复制粘贴使用
2.3.15.3 命令示例:
登陆(有点慢,等一等)
docker login --username=用户名 registry.cn-hangzhou.aliyuncs.com
打标签
docker tag 03735fb48e99 registry.cn-hangzhou.aliyuncs.com/命名空间/仓库名称:8.5.32.1
推送
docker push registry.cn-hangzhou.aliyuncs.com/命名空间/仓库名称:8.5.32.1
拉取前先删除原有的(删除前如果有运行先停掉)
docker rmi -f 03735fb48e99
拉取
docker pull registry.cn-hangzhou.aliyuncs.com/命名空间/仓库名称:8.5.32.1
2.3.16 docker容器的迁移和备份
备份镜像:docker save -o 自定义备份名称 镜像名称:镜像tag docker save -o tomcat-c2.tar tomcat-c2:1.1
恢复镜像: docker load -i 已备份的镜像名称 docker load -i tomcat-c2.tar