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服务即可。

  • 相关阅读:
    MiniUI表单验证实践
    MiniUI官方表单验证示例
    MiniUI表单验证总结
    Js-事件分发与DOM事件流
    Windows远程桌面连接的利器-mRemote
    Git 以分支的方式同时管理多个项目
    GIT 如何合并另一个远程Git仓库的文件到本地仓库里某个指定子文件夹并不丢失远程提交记录?
    如何导入另一个 Git库到现有的Git库并保留提交记录
    Total Commander如何设置自定义快捷键在当前目录打开ConEmu
    PHP ECSHOP中 诡异的问题:expects parameter 1 to be double
  • 原文地址:https://www.cnblogs.com/lucifer1997/p/9481605.html
Copyright © 2011-2022 走看看