win10安装docker
一、安装:win10安装docker,下载客户端安装即可。
二、配置及使用:
docker engine 配置国内镜像源:
 "registry-mirrors": ["https://cr.console.aliyun.com"],
cmd窗口打开powershell
  docker  version
  docker search hello-world
  docker search centos
  docker pull hello-world
  docker tag 860c279d2fec runoob/centos:dev 设置镜像标签
  docker run helllo-world
  docker run --name some-nginx -p 1080:80 -v f:\docker:/usr/share/nginx/html -d nginx
  docker run -i -t centos /bin/bash  运行交互式的容器,通过运行 exit 命令或者使用 CTRL+D 来退出容器
  docker logs 容器ID或容器名 输出日志
	docker ps
	docker ps -a
	docker ps -l 查询最后一次创建的容器:
	docker stop/restart 容器ID或容器名
	docker stop -t=60 容器ID或容器名
	docker rmi 镜像id
	docker rm 容器id
	docker attach [container_id] #连接一个正在运行的container实例(即实例须为start状态,可以多个 窗口同时attach 一个container实例),但当某个窗口因命令阻塞时,其它窗口也无法执行了。
	exec可直接在容器内运行的命令。docker exec -ti [container_id] /bin/bash
 
	
三、运行一个镜像:
			方式一:docker run命令方式
			docker run --name some-nginx -p 1080:80 -v /some/content:/usr/share/nginx/html -d nginx
			(docker run --name some-nginx -p 1080:80 -v f:\docker:/usr/share/nginx/html -d nginx)
			参数说明:
			--name:定义容器名。
			-p:宿主机与容器的端口挂载,格式:宿主机端口:容器内部端口
			-v:宿主机目录与容器内目录映射,格式:宿主机目录:容器内部目录
			-d:后台执行
			执行以上命令就可以啦,这里把容器名取名为some-nginx,把容器的80端口映射到宿主机的1080端口,容器内的/usr/share/nginx/html目录映射到宿主机的/some/content目录,使用的是nginx最新的镜像,镜像部分也可以写成 “nginx:版本”比如“nginx:1.15.1”。
			在/some/content创建一个index.html,随便输入个内容。
			访问下 ip+1080可以看到请求到nginx了。
			方式二:Dockerfile配置文件构建镜像方式
				1.创建一个文件,命名为Dockerfile,输入以下内容。
				FROM nginxCOPY html /usr/share/nginx/html
   		 FROM nginx 代表以nginx镜像为基础构建我们的镜像。
	
				注意需要先在Dockerfile同目录创建html目录,不然会报错。
	
				Dockerfile文件内可以自定义镜像内容,有很多指令可以用,比如可以在配置容器创建后运行shell脚本等,可以自行查阅,本文仅做一个简单的用法示例入门。
				
				注意:Dockerfile 的指令每执行一次都会在 docker 上新建一层,所以尽量不要写太多层。
				
				2.在Dockerfile同目录下运行命令创建镜像
				
				docker build -t my-nginx-image .
				
				注意最后面有一个点。
				
				3.运行容器
				
				docker run --name some-nginx -p 1080:80 -d my-nginx-image
				在html目录里新建一个index.html文件随便输入个内容,访问下 ip+1080可以看到请求到nginx了。
        Dockerfile一般用于自定义镜像,因为是个文件,也比命令的方式更易于保存与团队间共享。
				方式三:docker -compose方式
				
				在需要管理多个容器时用以上两种方式都不太适合,不仅要管理每个容器的配置信息,还要处理容器间的关系,这时候就需要docker-compose来做容器编排了。
				
				1.创建一个docker-compose.yml文件,输入以下内容
				# yaml 配置
					version: '3'
					services:
					  nginx:
					    image: nginx
					    container_name: some-nginx1
					    ports:
					     - "1080:80"
					    volumes: 
					    - F:\docker:/usr/share/nginx/html
				
				在F:\docker创建一个index.html,随便输入个内容,等会访问测试。
				
				2.执行启动命令
				docker-compose up -d
				访问下 ip+1080可以看到请求到nginx了。
三、下载、制作、上传镜像
登录阿里云镜像:
	 docker login --username=赵晓525 registry.cn-hangzhou.aliyuncs.com
	 docker tag 12766a6745ee registry.cn-hangzhou.aliyuncs.com/testzx/nginx:0406  本地镜像打标签
	 docker push registry.cn-hangzhou.aliyuncs.com/testzx/nginx:0406 上传本地镜像
	 docker pull registry.cn-hangzhou.aliyuncs.com/testzx/nginx:[镜像版本号]  拉取容器服务中刚刚上传的镜像
制作镜像
  docker run --name some-nginx -p 1080:80 -v f:\docker:/usr/share/nginx/html -d nginx
  mkdir dockerfile
  vi dockerfile
		文件内容:
		  FROM nginx
		  RUN echo '这是一个本地构建的nginx镜像' > /usr/share/nginx/html/index.html
在文件目录下执行
 docker build -t nginx:v3 .
			[+] Building 0.8s (4/5)
			[+] Building 1.0s (4/5)
			[+] Building 1.1s (4/5)
			[+] Building 1.3s (5/6)
			[+] Building 1.3s (6/6) FINISHED
			 => [internal] load build definition from Dockerfile                                                                               0.2s
			 => => transferring dockerfile: 133B                                                                                               0.0s
			 => [internal] load .dockerignore                                                                                                  0.1s
			 => => transferring context: 2B                                                                                                    0.0s
			 => [internal] load metadata for docker.io/library/nginx:latest                                                                    0.0s
			 => [1/2] FROM docker.io/library/nginx                                                                                             0.4s
			 => [2/2] RUN echo '这是一个本地构建的nginx镜像' > /usr/share/nginx/html/index.html                                                           0.5sing to image                                                                                                             0.1s
			 => exporting to image                                                                                                             0.1s
			 => => exporting layers                                                                                                            0.1s
			 => => writing image sha256:813a1b77df54126778c7f8740772cde558b1ec89551e40b6be37b03514d9c63a                                       0.0s
			 => => naming to docker.io/library/nginx:v3                                                                                        0.0s
			
			Use 'docker scan' to run Snyk tests against images to find vulnerabilities and learn how to fix them
docker 容器连接:
		Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。
				创建一个docker-compose.yml
				执行启动命令
				docker-compose up -d
容器迁移:(参考:https://www.cnblogs.com/sunnynic/p/12317711.html)
			容器打包成镜像     #  docker commit -m "" -a "" [CONTAINER ID] [新的镜像名] ,其中-m和-a是可选参数,意思分别是描述和作者
			导出镜像       #    docker save -o [新的镜像名.tar] [新的镜像名]
			拷贝镜像到目标服务器     #    scp src dst
			导入镜像     #    sudo docker load -i [新的镜像名.tar]  
			运行容器    #    docker run
			
                    
                
                
            
        
浙公网安备 33010602011771号