Docker 学习笔记 (一) win10环境的基础操作

本文是介绍在Windows10下安装Docker和对Docker的基本操作,后续会总结linux版本的操作。

准备工作

  1. 首先要确保你的windows系统是专业版、企业版和教育版。Ps:家庭版是不行的,如果你是家庭版,那么一是升级到专业版,可以自己百度一下。
  2. 其次是检查电脑的虚拟化开启了没有:进入任务管理器(ctrl+alt+del),点击性能 ,查看虚拟化是否已启用,如果虚拟化是已禁用,那么你需要重启电脑进入bios开启虚拟化
  3. 然后再是进入电脑的控制面板->程序->启用或关闭Windows功能,把Hyper-v勾上,启用后电脑会重启,如下图

下载安装 Toolbox

环境的准备工作完成后,下面我们开始下载安装包,进入官网https://www.docker.com/get-started ,然后点击 Download Desktop and Take a Tutorial,并下载 Windows 的版本,如果你还没有登录,会要求注册登录,注册完成后进入下载页面:

下载完成后,进行安装,安装安城点击 Close and log out, 会重启电脑

Docker入门

验证安装成功

  1. 检查Docker,Compose和Machine的版本
    docker --version
    docker-compose --version
    docker-machine --version
    
  2. 检查版本信息,并确保docker命令正常工作

    docker ps # 列出所有在运行的容器信息
    docker version # 查看当前docker版本号
    docker info
    
  3. 更换镜像源地址
    中国官方镜像源地址为:https://registry.docker-cn.com
    点击托盘处docker图标右键选择-Settings,然后修改如下:

    点击Apply后会重启Docker。

  4. 载入测试镜像测试
    运行docker run hello-world以测试从Docker Hub中拉取图像并启动容器

Docker基础

  1. 启动一个服务
    运行命令 docker run -d -p 80:80 -–name nginx_web nginx 启动一个Dockerized webserver 会下载nginx容器图像并启动它,然后再打开浏览器键入http://localhost
    这样即表示安装成功了!

    docker run -p 80:80 --name nginx_web \
    --network kspnet \
    -v /www:/www \
    -v /conf/nginx.conf:/etc/nginx/nginx.conf \
    -v /logs:/wwwlogs \
    -d nginx
    

    参数:

    run
    启动容器有两种方式,一种是基于镜像新建一个容器并启动,另外一个是将在终止状态(stopped)的容器重新启动。新建并启动所需要的命令主要为 docker run。
    -p
    端口绑定 外部端口 : 容器内端口 将容器的80端口映射到主机的80端口
    —name
    将容器命名为nginx_web,而不是自动生成的一长串hex。
    -v
    使用 -v 标记也可以指定挂载一个本地主机的目录到容器中去。 -v 本地文件夹:容器里的文件夹:读写权限
    -v /www:/www: 将主机中当前目录下的www挂载到容器的/www
    -v /conf/nginx.conf:/etc/nginx/nginx.conf: 将主机中当前目录下的nginx.conf挂载到容器的/etc/nginx/nginx.conf
    -v /logs:/wwwlogs: 将主机中当前目录下的logs挂载到容器的/wwwlogs
    -d
    更多的时候,需要让 Docker在后台运行而不是直接把执行命令的结果输出在当前宿主机下。此时,可以通过添加 -d 参数来实现。
    —restart=always
    运行容器时使用–restart参数可以指定一个restart策略,来指示在退出时容器应该如何重启或不应该重启。
    no – 容器退出时不要自动重启。这个是默认值。
    on-failure[:max-retries] – 只在容器以非0状态码退出时重启。可选的,可以退出docker daemon尝试重启容器的次数。
    always – 不管退出状态码是什么始终重启容器。当指定always时,docker daemon将无限次数地重启容器。容器也会在daemon启动时尝试重启,不管容器当时的状态如何。
    unless-stopped – 不管退出状态码是什么始终重启容器,不过当daemon启动时,如果容器之前已经为停止状态,不要尝试启动它。
    nginx
    镜像的名称,表示以什么镜像作为底包新建一个容器。

  2. 运行docker ps 命令,检查容器的详细信息

    docker ps         # 列出所有在运行的容器信息
    docker ps -a     # 列出所有容器信息
    docker ps -n 5     # 最近创建的5个容器信息
    docker ps -a -q # 列出所有创建的容器ID
    

    输出:

    CONTAINER ID   IMAGE          COMMAND                ...  PORTS                    NAMES
    09b93464c2f7   nginx:latest   "nginx -g 'daemon off" ...  80/tcp, 443/tcp          nginx_web
    96f7f14e99ab   mysql:5.6      "docker-entrypoint.sh" ...  0.0.0.0:3306->3306/tcp   mymysql
    

    参数:

    -a :显示所有的容器,包括未运行的。
    -f :根据条件过滤显示的内容。
    —format :指定返回值的模板文件。
    -l :显示最近创建的容器。
    -n :列出最近创建的n个容器。
    —no-trunc :不截断输出。
    -q :静默模式,只显示容器编号。
    -s :显示总的文件大小。

  3. 停止或移除容器和图像

    docker stop nginx_web     # 停止网络服务器
    docker start nginx_web     # 开始网络服务器
    docker rm -f nginx_web    # 删除容器
    docker images            # 列出本地图像
    docker rmi nginx        # 删除不再需要的图像 例如nginx
    
  4. 进入容器

    dokcer ps -a     #查询正在运行的container
    docker exec -it nginx_web /bin/bash
    exit     #退出容器
    

1000

GS

北京 | php攻城狮

创作 35 粉丝 2

fighting