docker记录

本文档详细介绍了Docker的常用命令,包括启动、关闭、重启Docker服务,查看和管理镜像(搜索、下载、删除),以及容器的操作(创建、启动、重启、停止、删除、进入、日志查看、重命名、执行命令、文件复制)。还涵盖了容器的迁移与备份方法,以及如何将镜像推送到Docker Hub和阿里云仓库。
摘要由CSDN通过智能技术生成

目录

  1. docker常用命令

       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

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值