Docker

镜像仓库 Docker Hub

镜像仓库的国内镜像源(阿里云):

【Ubuntu18.04】Docker配置镜像源-阿里云开发者社区

运行

systemctl start docker 启动服务

镜像管理

docker search xxx 搜索xxx镜像

docker pull aaa/xxx 拉取镜像

创建并运行 run命令

docker run 创建并运行一个容器

常用参数:

  • -d: 后台运行容器,并返回容器ID;
    • 不加 -d 会卡在那,等待输出日志
  • --name="nginx-lb": 为容器指定一个名称;
    • 必须唯一
  • -p: 指定端口映射,格式为:主机(宿主)端口:容器端口
  • -e username="ritchie": 镜像环境变量;
    • 由镜像的制作者决定的,查阅镜像文档可知如何配置
  • --volume , -v: 绑定一个卷
    • 更多见数据卷部分
  • 指定运行镜像的名字
    • 完整写法: mysql:8.0 没写默认最新版本

其它参数:

  • -a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
  • -i: 以交互模式运行容器,通常与 -t 同时使用;
  • -P: 随机端口映射,容器内部端口随机映射到主机的端口
  • -t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
  • –dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;
  • –dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;
  • -h “mars”: 指定容器的hostname;
  • –env-file=[]: 从指定文件读入环境变量;
  • –cpuset=”0-2” or –cpuset=”0,1,2”: 绑定容器到指定CPU运行;
  • -m : 设置容器使用内存最大值;
  • –net=”bridge”: 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;
  • –link=[]: 添加链接到另一个容器;
  • –expose=[]: 开放一个端口或一组端口;
1
2
docker -d \
--name

常见命令

官网:Docker Docs

docker xxx --help 查看具体命令帮助

镜像管理:

  • docker pull 下载到本地
    • docker pull nginx
  • docker push 推送镜像到云端
  • docker images 查看本地镜像
  • docker rmi 删除本地镜像
  • docker build 通过 dockerfile 构建镜像
  • docker save 保存镜像为压缩包
    • docker save -o nginx.tar nginx:latest -o 文件名
  • docker load 将save保存的压缩包,加载为本地镜像

容器:

docker run 创建运行容器

docker stop 停止容器内部的进程

docker start 启动容器内部的进程

  • docker ps 查看容器运行状态

    • docker ps -a --format "table {{.ID}}\t{{.Image}}\t{{.Names}}\t{{.Ports}}\t{{.Status}}"
    • -a 显示所有容器,包括未运行的道容器
  • docker rm 删除容器

    • -f 强制删除
  • docker logs 查看日志

    • docker logs nginx
  • docker exec 进入容器内部

    • -it nginx bash 可交互终端,命令行
  • docker inspect nginx 查看容器信息(Mounts处有数据卷信息)

数据卷

主机中数据卷固定目录: /var/lib/docker/volumes/

docker run -v 数据卷名:容器内目录 数据卷挂载,如果数据卷不存在,则自动创建

docker run -v 本地目录:容器内目录 挂载到本地目录。 目录以 / ./ 开头

自定义镜像

Dockerfile

network 网络

host 为IP地址为主机地址一样