两小时学会docker简单命令

docker学习笔记

2小时学dacker

1. docker入门

  1. 启动docker

    systemctl start docker
    
  2. 查看docker状态

    systemctl status docker
    
  3. 关闭docker

    systemctl stop docker
    
  4. 开机自启动

     systemctl enable docker
    
  5. 重启

    systemctl restart docker
    

2. 镜像images

  1. 查看本地镜像

    docker images
    
  2. 在线搜索镜像

    docker search redis
    
  3. 下载镜像

    docker pull redis:6.0
    
    • 不写版本号,默认latest
  4. 删除镜像

    docker rmi redis:6.0
    docker rmi images_id(123345345rwerw)
    
  5. 查看本地所有镜像

    docker images -q
    
  6. 删除所有镜像

    docker rmi 'docker images -q'
    

3. 容器container

  1. 启动容器

    docker run -it --name=c1 redis:latest /bin/bash
    
    • i: 一直运行
    • t: 分配终端
    • name: 容器名称:版本号
    • /bin/bash/: 创建后直接进入容器
  2. 后台启动

    docker run -id --name=c2 redis:latest /bin/bash
    
    • d: 后台运行
  3. 退出容器

    exit
    
  4. 查看运行容器

    ### 当前运行容器
    docker ps
    
    ### 历史运行容器
    docker ps -a
    
  5. 进入容器

    docker exec -it c1 /bin/bash
    
  6. 关闭容器

    docker stop c1
    
  7. 删除容器

    docker rm c1
    
  8. 查看所有容器ID

    docker ps -aq
    
  9. 删除所有容器

    docker rm 'docker ps -aq'
    
  10. 查看容器信息

    docker inspect c1
    

4. 数据卷

  1. 作用

    • 容器数据持久化
    • 客户端与容器数据交换
    • 容器间数据交换
  2. 启动容器,配置数据卷

    ### 启动容器c1设置数据卷
    docker run -it --name=c1 -v /volume redis:latest /bin/bash
    ### 启动容器c2,设置容器1的数据卷
    docker run -it --name=c2 -volumes-from c1 redis:latest /bin/bash
    

5. 安装MYSQL

docker run -id \
-p 3306:3306 \
--name=c_mysql \
-v $PWD/conf:/etc/mysql/conf.d \
-v $PWD/logs:/logs \
-v $PWD/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql:latest
  • 以上代码可以直接复制
  • p: 宿主机端口:容器端口
  • v: 宿主机位置:容器位置
  • $PWD: 当前位置目录

6. 安装tomcat

docker run -id \
-p 8080:8080 \
--name=c_tomcat \
-v $PWD:/usr/local/tomcat/webapps \
tomcat:latest /bin/bash
## 无法访问主页,把webapps.dist里面文件放在webapps 目录下即可

7. 安装nginx

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

8. Dockerfile

  1. 镜像制作

    ### 制作镜像,不写版本默认latest
    ### 注意:挂载文件不会生成到新的镜像中
    docker commit 容器id 镜像名称:版本号
    
    ### 把镜像保存成压缩文件
    docker save -o 压缩文件名称 镜像名称:版本号
    
    ### 把压缩文件还原成镜像
    docker load -i 压缩文件名称
    
  2. Dockerfile概念

    • Dockerfile是一个文本文件
    • 包含一条条的指令
    • 每一条执行构建一层,基于基础镜像,最终构建出一个新的镜像
    • 对于开发人员:可以为开发团队提供一个完全一致的开发环境
    • 对于测试人员:可以直接拿开发时所构建的镜像或者通过Dockerfile文件构建一个新的镜像开始工作了
    • 对于运维人员:在部署时,可以实现应用的无缝移植
    • 注意:可以通过共享镜像文件,非常方便
  3. Dockerfile制作案例

    ### 定义父镜像
    FROM java:8
    ### 定义作者信息
    MAINTAINER liufan <869860490@qq.com>
    ### 将jar包添加到容器,本地jar:容器jar
    ADD springboot.jar app.jar
    ### 定义容器启动执行命令
    CMD jaVA -jar app.jar
    
    ### 通过dockerfile构建镜像
    docker build -f dockerfile文件路径 -t 镜像名称版本 .
    

9. Dockerfile服务编排

Docker Compose是一个编排多容器分布式部署的工具,提供命令集管理容器化应用的完整开发周期,包括服务构建,启动和停止。使用步骤:

  1. 利用Dockerfile定义运行环境镜像
  2. 使用docker-compose.yml定义组成应用的个服务
  3. 运行docker-compose up 启动应用

10. DOCKER创建私有仓库

  1. 下载私有仓库镜像

    docker pull registry
    
  2. 启动私有仓库镜像

    docker run -id --name=registry -p 5000:5000 registry
    
  3. 修改daemon.json文件

    vim /etc/docker/daemon.json
    
    ### 增加配置,用于让docker信任私有仓库地址,ip为私有仓库真实ip
    {"insecure-registries":["ip:5000"]}
    
  4. 重启docker服务

    systemctl restart docker
    
  5. 如果报错

    Job for docker.service failed because start of the service was attempted too often. See "systemctl status docker.service" and "journalctl -xe" for details.
    To force a start use "systemctl reset-failed docker.service" followed by "systemctl start docker.service" again.
    
    #### 报以上错误,修改文件名称
    mv daemon.json daemon.conf
    ### 重启服务
    systemctl restart docker
    
  6. 镜像上传私有仓库

    ### 标记镜像为私有仓库镜像
    docker tag centos:7 ip:5000/centos:7
    ### 上传标记的镜像
    docker push ip:5000/centos:7
    
  7. 从私有仓库拉取镜像

    docker pull ip:5000/centos:7
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值