zoukankan      html  css  js  c++  java
  • Docker使用入门

    docker images   查看本地镜像

    docker ps -a   查询容器

    docker ps -l   查询最近使用容器

    docker rm CONTAINER_ID   删除容器

    docker rmi IMAGE_ID   删除镜像

    docker cp [OPTIONS] SRC_PATH CONTAINER_ID:DEST_PATH   上传文件/文件夹

    docker start CONTAINER_ID   启动容器

    docker stop CONTAINER_ID   退出容器

    docker kill CONTAINER_ID   强制退出容器

    docker attach CONTAINER_ID   登录已启动容器

    docker commit CONTAINER_ID xxxx/xxxxx[:xx]   保存对容器的修改

    docker inspect CONTAINER_ID   查看容器的信息

    ctrl+d    退出且关闭容器

    ctrl+p,q      退出但不关闭容器

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

    OPTIONS说明:

    • -a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;

    • -d: 后台运行容器,并返回容器ID;

    • -i: 以交互模式运行容器,通常与 -t 同时使用;

    • -p: 端口映射,格式为:主机(宿主)端口:容器端口

    • -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;

    • --name="nginx-lb": 为容器指定一个名称;

    • --dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;

    • --dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;

    • -h "mars": 指定容器的hostname;

    • -e username="ritchie": 设置环境变量;

    • --env-file=[]: 从指定文件读入环境变量;

    • --cpuset="0-2" or --cpuset="0,1,2": 绑定容器到指定CPU运行;

    • -m :设置容器使用内存最大值;

    • --net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container:<name|id> 四种类型;

    • --link=[]: 添加链接到另一个容器;

    • --expose=[]: 开放一个端口或一组端口;

    docker run -it -p xxxx:xxxx xxx/xxx /bin/bash 

    docker rm 失败 容器处于dead状态:

    根据docker rm失败产生的最后一串由字母与数字组成的字符串s,在命令行中输入grep [s]找到相关进程pid,然后kill [pid]。

    最后再次grep [s],如果没有相关进程显示,即可以正常docker rm删除容器。

    docker run -it -p 8080:8080  docker.io/golang bash 根据golang镜像产生一个新容器

    docker run -it -p 8080:8080 -v /root/golang/go:/go -v /root/golang/code:/code --privileged docker.io/golang bash   把本地目录映射到容器中

    容器中的web应用监听的是容器端口,不同容器可以映射相同的容器端口,但是宿主机监听端口不能重复。

    docker配置redis服务:

    docker pull redis

    docker run -it -p 56379:6379 docker.io/redis /bin/bash

    exit

    dokcer ps -l

    docker exec -d CONTAINER_ID redis-server

    docker配置mysql服务:

    docker run -e MYSQL_ROOT_PASSWORD=123456 -p 53306:3306 -d docker.io/mysql

    如果发现在容器中可以连接上数据库,而Navicat 远程连接docker容器中的mysql出现报错1251 - Client does not support authentication protocol

    解决办法:https://blog.csdn.net/sinat_38345188/article/details/80838098

    docker后台运行go webapi:

    docker start webapi1

    docker start webapi2

    docker exec -d webapi1 bash -c "cd ../code/main && go run *.go"

    docker exec -d webapi2 bash -c "cd ../code/main && go run *.go"

    docker配置nginx服务:

    docker run -it -p 80:80 docker.io/nginx bash

    cd etc/nginx

    vim nginx.conf

    在http段加入以下代码

    upstream 192.168.200.3{

      server 192.168.200.3:8081;

      server 192.168.200.3:8082;

    }

    cd conf.d 

    在etc/nginx/conf.d中运行vim default.conf

    location / {  

       proxy_set_header Host $host;

       proxy_set_header X-Real-IP $remote_addr;

       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

       root /usr/share/nginx/html;

       index index.html index.htm;

       proxy_pass http://192.168.200.3;

    }

    重新启动nginx服务即可。

  • 相关阅读:
    IO 单个文件的多线程拷贝
    day30 进程 同步 异步 阻塞 非阻塞 并发 并行 创建进程 守护进程 僵尸进程与孤儿进程 互斥锁
    day31 进程间通讯,线程
    d29天 上传电影练习 UDP使用 ScketServer模块
    d28 scoket套接字 struct模块
    d27网络编程
    d24 反射,元类
    d23 多态,oop中常用的内置函数 类中常用内置函数
    d22 封装 property装饰器 接口 抽象类 鸭子类型
    d21天 继承
  • 原文地址:https://www.cnblogs.com/lucifer1997/p/9481605.html
Copyright © 2011-2022 走看看