Docker系统性入门(一)

时间:2025-02-21 08:31:19
  • 安装这部分参考文档
  • 或者按照下面的步骤
    # 在任意centos或Ubuntu上
    wget  -O get_docker.sh	# 或者用curl,下载的话还是wget比较靠谱
    curl -fsSL  -o get_docker.sh
    sh get_docker.sh	# 在root用户,后面会将怎么在普通用户操作docker
    systemctl start docker
    docker version
    
  • 常见命令行和概念,慢慢理解image和container即可,image有分层的概念
    # 具体参数含义看上面的连接
    docker run -idt -w /home/dev/nba --name local_iso ci_builder_rhel72 bash
    # 还有一个常用的参数是 -v, 目录映射/volume
    
    # 退出容器后重新进入
    docker exec -it local_iso bash
    
    # 列出所有container的ID
    docker ps -aq
    docker rm $(docker ps -aq)	# 删除所有容器,但必须都stop,也可以加-f强制
    # 当然,删除也可以用 name 指定
    
  • 两种模式
    • attach:容器输出打印到主机,主机的信号(比如ctrl+C)会影响容器(stop),Windows例外
      • Windows里会有一个虚拟机(Hyper),所以看到的docker Server还是Linux
    • detach:容器会在后台运行,输出不打印到主机,主机信号也不管用(就是run容器时指定-d参数)
    • 可以从detach切换到attach:docker attach ID/name,不推荐
  • 容器日志
    • 使用 docker logs -f name/ID可以动态跟踪Log信息,其实就是输出到console
  • 使用 -p 参数可以映射容器内的端口到外部
    • 使用命令:docker run -idt --name nginx_d1 -p 8080:80 nginx
    • 使用8080端口是因为主机的80可能被占用,查看:lsof -i:80
    • 如果image使用的是NGINX,就可以在浏览器访问 127.0.0.1:8080 查看到NGINX首页