doker实战

docker实战

docker 安装

  • 移除以前docker相关包

    sudo yum remove docker \
                      docker-client \
                      docker-client-latest \
                      docker-common \
                      docker-latest \
                      docker-latest-logrotate \
                      docker-logrotate \
                      docker-engine
    
  • 配置yum源

    sudo yum install -y yum-utils
    
    sudo yum-config-manager \
    --add-repo \
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    
  • 安装docker

    sudo yum install -y docker-ce docker-ce-cli containerd.io
    
  • 启动docker

    systemctl enable docker --now
    
  • 配置加速

    sudo mkdir -p /etc/docker
    
    sudo tee /etc/docker/daemon.json <<-'EOF'
    {
      "registry-mirrors": ["https://82m9ar63.mirror.aliyuncs.com"],
      "exec-opts": ["native.cgroupdriver=systemd"],
      "log-driver": "json-file",
      "log-opts": {
        "max-size": "100m"
      },
      "storage-driver": "overlay2"
    }
    EOF
    
    sudo systemctl daemon-reload
    
    sudo systemctl restart docker
    

docker 命令

  • 拉去镜像

    # 默认最新版
    docker pull nginx
    # 指定版本
    docker pull nginx:1.20.1
    # 查看镜像
    docker images
    

  • 启动容器

    docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
    

    比如,启动nginx应用容器,并映射88端口

    # -d:后台运行
    # -p:端口映射
    # --restart=always: 开机自启
    docker run --name=mynginx   -d  --restart=always -p  88:80   nginx
    
  • 查看正在运行的容器

docker ps

  • 停止容器

    docker stop 容器id/名字
    
  • 再次启动

    docker start 容器id/名字
    
  • 删除停止的容器

    docker rm  容器id/名字
    docker rm -f mynginx   #强制删除正在运行中的
    
  • 应用开机自启

    docker update 容器id/名字 --restart=always
    

修改容器内容

  • 进容器内部修改

    # 进入容器内部的系统,修改容器内容
    docker exec -it 容器id  /bin/bash
    
  • 挂载数据到外部修改

    docker run --name=mynginx   \
    -d  --restart=always \
    -p  88:80 -v /data/html:/usr/share/nginx/html:ro  \
    nginx
    
    # 修改页面只需要去 主机的 /data/html
    
  • 提交改变

    docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]
    
    docker commit -a "author"  -m "首页变化" 341d81f7504f nginx:v1.0
    

推送远程仓库

docker tag local-image:tagname new-repo:tagname
docker push new-repo:tagname
# 把旧镜像的名字,改成仓库要求的新版名字
docker tag nginx:v1.0 author/nginx:v1.0

# 登录到docker hub
docker login       

# 推送
docker push author/nginx:v1.0

docker logout(推送完成镜像后退出)

# 别的机器下载
docker pull author/nginx:v1.0

docker部署项目

  1. 先写一个spring boot项目,使用maven打包

  2. 编写Dockerfile文件

    FROM openjdk:8-jdk-slim
    LABEL maintainer=author
    
    COPY target/*.jar   /app.jar
    
    ENTRYPOINT ["java","-jar","/app.jar"]
    
  3. 将 target 目录和 Dockerfile 文件放在一个文件夹里上传到服务器(可以把target目录里除了jar包外的文件都删除)

  4. 构建镜像

    docker build -t java-demo:v1.0 .
    
  5. 启动容器

    docker run -d -p 8080:8080 --name myjava-app java-demo:v1.0 
    
posted @ 2021-12-25 14:30  西凉马戳戳  阅读(59)  评论(0编辑  收藏  举报