Docker笔记

107 阅读2分钟

安装

#centos
https://docs.docker.com/engine/install/centos/
#ubuntu
https://docs.docker.com/engine/install/ubuntu/
#debian
https://docs.docker.com/engine/install/debian/
#fedora
https://docs.docker.com/engine/install/fedora/

#centos。fedora默认源
https://download.docker.com/linux/fedora/docker-ce.repo
#阿里源
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

#部分版本在安装过程中会报错,根据报错信息加上指定参数,如--allowerasing
yum install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin --allowerasing

#启动 Docker
systemctl start docker
#开机启动docker
systemctl enable docker
#删除安装包
yum remove docker-ce
#删除镜像、容器、配置文件等内容
rm -rf /var/lib/docker

阿里云安装docker

https://help.aliyun.com/document_detail/264695.html

基础配置

配置国内镜像源

#配置文件路径,默认不存在,需要创建
/etc/docker/daemon.json
{
"registry-mirrors": [
        "http://hub-mirror.c.163.com",
        "https://registry.docker-cn.com"
    ]
}

常用命令

系统命令

  • 启动docker

    systemctl start docker
    
  • 关闭docker

    systemctl stop docker
    
  • 重启docker

    systemctl restart docker
    
  • docker开机启动

    systemctl enable docker
    
  • 查看Docker的运行状态

    systemctl status docker
    

    基础命令

  • 查看docker 版本号信息

    docker version
    docker info
    
  • docker帮助命令

    docker --help
    docker pull --help
    

    镜像命令

  • 查看docker 镜像列表

    docker images
    
  • 搜索镜像

    docker search 镜像名
    docker search --filter=STARS=9000 mysql #搜索 STARS >9000的 mysql 镜像
    
  • 拉取镜像

    #不加tag(版本号) 即拉取docker仓库中 该镜像的最新版本latest 加:tag 则是拉取指定版本
    docker pull 镜像名 
    docker pull 镜像名:tag
    
  • 运行镜像

    docker run 镜像名
    docker run 镜像名:Tag
    
  • 删除镜像

    #当前镜像没有被任何容器使用才可以删除
    #删除一个
    docker rmi -f 镜像名/镜像ID
    #删除多个 其镜像ID或镜像用用空格隔开即可 
    docker rmi -f 镜像名/镜像ID 镜像名/镜像ID 镜像名/镜像ID
    #删除全部镜像  -a 意思为显示全部, -q 意思为只显示ID
    docker rmi -f $(docker images -aq)
    docker rmi `docker images -aq`
    
  • 删除容器

    docker rm 容器ID
    
  • 强制删除镜像

    docker image rm 镜像名称/镜像ID
    
  • 保存镜像

    #将我们的镜像 保存为tar 压缩文件 这样方便镜像转移和保存 ,然后可以在任何一台安装了docker的服务器上 加载这个镜像
    docker save 镜像名/镜像ID -o 镜像保存在哪个位置与名字
    docker save tomcat -o /myimg.tar
    
  • 加载镜像

    #任何装 docker 的地方加载镜像保存文件,使其恢复为一个镜像
    docker load -i 镜像保存文件位置
    
  • 镜像标签

    docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
    docker tag 源镜像名:TAG 想要生成新的镜像名:新的TAG
    # 如果省略TAG 则会为镜像默认打上latest TAG
    docker tag aaa bbb
    # 上方操作等于 docker tag aaa:latest bbb:test
    

    容器命令

  • 查看命令

    #查看正在运行容器列表
    docker ps
    #查看所有容器 -----包含正在运行 和已停止的
    docker ps -a
    #只显示容器ID
    docker ps -q
    
  • 运行容器

    #-it表示与容器进行交互式启动 -d 表示可后台运行容器 (守护式运行)--name 给要运行的容器起的名字  /bin/bash  交互路径
    #--restart=always 便表示,该容器随docker服务启动而自动启动
    docker run -it -d --name 要取的别名 镜像名:Tag /bin/bash
    #没有设置随docker启动,想要将已启动容器设置为随docker启动
    docker  update --restart=always 容器Id/容器名
    #
    docker container update --restart=always 容器Id/容器名
    
  • 重启/停止容器

    docker restart 容器名/容器ID
    docker stop 容器名/容器ID
    
  • 进入容器

    docker exec -it 容器名/容器ID /bin/bash
    #推荐使用exec方式
    docker attach 容器名/容器ID
    
  • 退出容器

    #直接退出  未添加 -d(持久化运行容器) 时 执行此参数 容器会被关闭  
    exit
    #优雅退出 --- 无论是否添加-d 参数 执行此命令容器都不会被关闭
    Ctrl + p + q
    
  • 容器文件拷贝

    #无论容器是否开启 都可以进行拷贝
    #从容器内拷出
    docker cp 容器ID/名称: 容器内路径  容器外路径
    #docker cp 333d6b0c52c449d9199e2a5ee610ac24f73a8fd338fad0185142797eeff28112:/home/rocketmq/rocketmq-4.9.2/bin D:/server/rocketmq/
    #从外部拷贝文件到容器内
    docker  cp 容器外路径 容器ID/名称: 容器内路径
    
  • 查看容器日志

    docker logs -f --tail=要查看末尾多少行 默认all 容器ID
    
  • 更新容器名称

    docker rename 容器ID/容器名 新容器名
    

常用镜像安装

安装NoVNC

docker run -id --name=novnc -p 5900:5900 novnc

安装redis

docker run -id --restart=always --name=redis -p 6379:6379 redis --requirepass secpay##

安装tomcat

 docker run -id --name=tomcat \
 -p 8080:8080 \
 -v $PWD:/usr/local/tomcat/webapps \
 tomcat

安装nginx

 docker run -id --name=nginx \
 -p 80:80
 -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf \
 -v $PWD/logs:/var/log/nginx \
 -v $PWD/html:/usr/share/nginx/html \
 nginx

安装rabbitmq

docker pull rabbitmq:management
docker run -d --hostname my-rabbit --name rabbit -p 15672:15672 -p 5673:5672 rabbitmq:management