Docker 学习笔记 (一) win10环境的基础操作
5年前
1413
0
本文是介绍在Windows10下安装Docker和对Docker的基本操作,后续会总结linux版本的操作。
准备工作
- 首先要确保你的windows系统是专业版、企业版和教育版。Ps:家庭版是不行的,如果你是家庭版,那么一是升级到专业版,可以自己百度一下。
- 其次是检查电脑的虚拟化开启了没有:进入任务管理器(ctrl+alt+del),点击性能 ,查看虚拟化是否已启用,如果虚拟化是已禁用,那么你需要重启电脑进入bios开启虚拟化
- 然后再是进入电脑的控制面板->程序->启用或关闭Windows功能,把Hyper-v勾上,启用后电脑会重启,如下图
下载安装 Toolbox
环境的准备工作完成后,下面我们开始下载安装包,进入官网https://www.docker.com/get-started ,然后点击 Download Desktop and Take a Tutorial,并下载 Windows 的版本,如果你还没有登录,会要求注册登录,注册完成后进入下载页面:
下载完成后,进行安装,安装安城点击 Close and log out, 会重启电脑
Docker入门
验证安装成功
- 检查Docker,Compose和Machine的版本
docker --version docker-compose --version docker-machine --version
检查版本信息,并确保docker命令正常工作
docker ps # 列出所有在运行的容器信息 docker version # 查看当前docker版本号 docker info
更换镜像源地址
中国官方镜像源地址为:https://registry.docker-cn.com
点击托盘处docker图标右键选择-Settings,然后修改如下:
点击Apply后会重启Docker。载入测试镜像测试
运行docker run hello-world
以测试从Docker Hub中拉取图像并启动容器
Docker基础
启动一个服务
运行命令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
镜像的名称,表示以什么镜像作为底包新建一个容器。运行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 :显示总的文件大小。停止或移除容器和图像
docker stop nginx_web # 停止网络服务器 docker start nginx_web # 开始网络服务器 docker rm -f nginx_web # 删除容器 docker images # 列出本地图像 docker rmi nginx # 删除不再需要的图像 例如nginx
进入容器
dokcer ps -a #查询正在运行的container docker exec -it nginx_web /bin/bash exit #退出容器