zoukankan      html  css  js  c++  java
  • docker官方 入门

    链接

    1.开始

    docker run -d -p 80:80 docker/getting-started
    docker ps #查看容器
    docker images #查看images
    docker inspect 容器#查看容器信息
    docker exec -it 容器 /bin/sh #交换进入容器
    ps 查看进程
    nginx位置 :etc/nginx
    nginx配置文件 nginx.conf conf.d/default.conf
    docker getting-started 位置: /usr/share/nginx/html/tutorial
    
    

    2、创建image

    • 复制app到usr/share/
    • 在app下构建Dockerfile
    FROM node:12-alpine
     WORKDIR /app
     COPY . .
     RUN yarn install --production
     CMD ["node", "src/index.js"]
    
    • 构建image

       docker build -t getting-started .
       docker images
       docker ps
       docker stop **
       docker ps
       docker run -dp 3000:3000 getting-started
       curl localhost:3000
       
       
      

    3、升级应用

    docker ps    #显示正在运行的容器
    docker ps -a #显示所有容器
    docker rm id #删除容器
    docker images #显示镜像
    docker rmi id #删除镜像
     docker build -t getting-started . #重新打包镜像
      docker run -dp 3000:3000 getting-started
    

    5 持久化数据(named volume)

     docker run -dp 3000:3000 getting-started
     docker ps
     docker stop id
     docker ps -a
     docker rm -f id
     docker volume create todo-db
     docker run -dp 3000:3000 -v todo-db:/etc/todos getting-started
     docker volume inspect todo-db
    

    6、use bind mounts

    #进入app目录
    docker run -dp 3000:3000    -w /app -v "$(pwd):/app"       node:12-alpine       sh -c "yarn install && yarn run dev"
    docker logs -f <container-id>
    
    

    7、多容器app 使用mysql

    • each container should do one thing and do it well
    docker network create todo-app
    
     docker run -d 
         --network todo-app --network-alias mysql 
         -v todo-mysql-data:/var/lib/mysql 
         -e MYSQL_ROOT_PASSWORD=secret 
         -e MYSQL_DATABASE=todos 
         mysql:5.7
         
     docker volume inspect todo-mysql-data
     docker ps
    docker exec -it <mysql-container-id> mysql -p
    
    mysql> SHOW DATABASES;
    
     docker run -it --network todo-app nicolaka/netshoot
     dig mysql
     
      docker run -dp 3000:3000 
       -w /app -v "$(pwd):/app" 
       --network todo-app 
       -e MYSQL_HOST=mysql 
       -e MYSQL_USER=root 
       -e MYSQL_PASSWORD=secret 
       -e MYSQL_DB=todos 
       node:12-alpine 
       sh -c "yarn install && yarn run dev"
       
       docker logs -f <container-id>
     
    

    8、使用 docker compose

    • 安装docker compose

      pip3 install --upgrade pip
      pip3 install docker-compose -i https://pypi.douban.com/simple
      docker-compose --version
      
    • 创建compose file

      vim docker-compose.yml
      #-------------
      version: "3.7"
      
      services:
        app:
          image: node:12-alpine
          command: sh -c "yarn install && yarn run dev"
          ports:
            - 3000:3000
          working_dir: /app
          volumes:
            - ./:/app
          environment:
            MYSQL_HOST: mysql
            MYSQL_USER: root
            MYSQL_PASSWORD: secret
            MYSQL_DB: todos
      
        mysql:
          image: mysql:5.7
          volumes:
            - todo-mysql-data:/var/lib/mysql
          environment: 
            MYSQL_ROOT_PASSWORD: secret
            MYSQL_DATABASE: todos
      
      volumes:
        todo-mysql-data:
        
        ####--------
        
      docker-compose up -d
      docker-compose logs -f
      
  • 相关阅读:
    表单传文件值读取不到
    tomacat启动慢
    finder文件目录跳转快捷键
    ziparchiver添加后编译出错
    mjrefresh源码分析
    Code Sign error: No unexpired provisioning profiles found that contain any of the keychain's signing certificates
    java web学习
    Java HashMap
    Java Convert String to Binary
    Java ArrayList Class
  • 原文地址:https://www.cnblogs.com/hqzxwm/p/14534198.html
Copyright © 2011-2022 走看看