学Docker命令这一篇就够了

Docker

  • ​ 学习目标:

    · 掌握Docker基础知识,能够理解Docker镜像与容器的概念

    · 完成Docker安装与启动

    · 掌握Docker镜像与容器相关命令

    · 掌握Tomcat Nginx 等软件的常用应用的安装

    · 掌握docker迁移与备份相关命令

    · 能够运用Dockerfile编写创建容器的脚本

    ​ 能够搭建与使用docker私有仓库

鲸鱼背上有集装箱 ,

在大海里面---------宿主机系统Window10

鲸鱼 --------docker

集装箱 ---------容器实例 来自 我们的镜像模板.

一 Docker简介

1. 什么是虚拟化

​ 将一台计算机虚拟出多个逻辑计算机,每个逻辑计算机可运行不同的操作系统
​ 应用程序相互独立不受影响

2. Docker是什么?

​ Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。基于Go语言实现的云开源项目 也就是通过对应用组件的封装, 分发, 部署, 运行 等生命周期 , 的管理 ,使用户的App (可以是一个WEB应用或数据库应用等)及其 运行环境能够做到 " 一次封装, 到处运行 "

解决了运行环境和配置问题软件容器 , 方便做持续集成并有助于整体发布的容器虚拟化技术

3. Docker通常用于如下场景:

  • web应用的自动化打包和发布;
  • 自动化测试和持续集成、发布;
  • 在服务型环境中部署和调整数据库或其他的后台应用;
  • 从头编译或者扩展现有的OpenShift或Cloud Foundry平台来搭建自己的PaaS环境。

4. Docker的基本组成

①docker镜像 (就像千层饼)

​ 就是一个只读的模板 . 镜像可以用来创建Docker容器 , 一个镜像可以创建很多个容器

在这里插入图片描述

② docker容器

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hDkVy4Ng-1627126926368)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1626871712903.png)]

③镜像仓库

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wWlideMO-1627126926370)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1626871772620.png)]

总结

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eHVnJnyY-1627126926372)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\1626871670782.png)]

二 常用命令

1. 帮助命令

​ docker version : 显示 Docker 版本信息

​ docker info : 显示 Docker 系统信息,包括镜像和容器数

​ docker help : 帮助文档

2.镜像命令

docker images 列出本地主机上的镜像模板

OPTIONS :

    docker images -a   列出本地所有镜像(含中间映像层)
    docker images -q  只显示镜像 ID
    docker images --digests 显示镜像摘要信息
    docker images --no-trunc  显示完整的镜信息

search 就是去 Github上查找有哪些镜像

​ docker search 某个镜像名字 . 比如 : docker search tomcat

   docker search -s 30 tomcat   :   查找点赞数超过30的tomcat

  docker search -s 30 --no-trunc tomcat  显示完整的镜像描述

docker pull 下载镜像

docker pull 某个镜像名字 比如 : docker pull tomcat

docker rmi 删除镜像

docker rmi rmi -f镜像ID   : 删除单个
docker rmi rmi -f镜像名1 镜像名2  :删除多个    比如: docker rmi rmi -f tomcat nginx
docker rmi rmi -f${docker images -qa} : 删除全部

3.容器相关命令

①查看运行的容器

             docker ps	               查看正在运行的容器
			docker ps -a				查看所有容器
			docker ps –l				查看最后一次运行的容器
			docker ps -f status=exited	查看停止的容器

②交互式方式创建容器(前台)

         docker run -it --name=mycentos centos /bin/bash
			# docker run:表示创建容器
			# -it:表示运行容器并进入它的命令行
			# --name=mycentos:给当前的容器命名
			# centos: 使用该镜像创建
			# /bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash
			执行之后我们可以把每个容器都看成一个小电脑或者服务器

③退出当前容器

exit  
			退出之后,容器也退出了,没有删除

④创建后台容器(守护式方式创建容器 后台)

         docker run -id --name=mycentos2 centos
			docker exec -it mycentos2  /bin/bash
			退出之后容器没有退出

⑤启动与停止容器

            docker start mycentos2
			docker stop mycentos2

4. 文件拷贝

概念:把操作系统里面的文件拷贝到容器当中

命令:

linux操作系统到容器
				docker cp 需要拷贝的文件或目录 容器名称:容器目录
				touch a.txt 
				例如: docker cp a.txt mycentos2:/usr/local/
			进入到容器当中
				docker exec -it mycentos2 /bin/bash
			看容器中有哪些文件
				cd /usr/local 		ls
			容器到操作系统(需要退出容器)
				docker cp 容器名称:容器目录 需要拷贝的文件或目录
				例如: docker cp mycentos2:/usr/local/a.txt ./

5.目录挂载

概念:将宿主机的目录与容器内的目录进行映射(共享)

命令:

 宿主机目录:容器目录 
 docker run -id --name=mycentos3 -v /usr/local/mydata:/usr/local/mydata centos
 进入cd /usr/local/mydata 
 touch b.txt 
 vim b.txt 编辑内容
 进入容器看看内容
				docker exec -it mycentos3 /bin/bash
				cd /usr/local/mydata 
				ls 
				cat b.txt
				exit
 
 
查看容器IP地址
		docker inspect mycentos3
		docker inspect --format='{{.NetworkSettings.IPAddress}}' mycentos3
	删除容器
		docker stop mycentos3
		docker rm mycentos3
		docker rmi 6f5604be75c1

三 应用部署

1.mysql部署

拉取mysql镜像:	docker pull centos/mysql-57-centos7 

创建容器
docker run -di --name=容器名字 -p 宿主机端口:容器端口 -e MYSQL_ROOT_PASSWORD=mysql密码 镜像名称
docker run -di --name=mysql88 -p 3308:3306 -e MYSQL_ROOT_PASSWORD=123 centos/mysql-57-centos7 
利用docker ps 看是否映射成功

2.Nginx部署

拉取镜像 : docker pull nginx
创建Nginx容器:gitlab-ctl
			docker run -di --name=mynginx3 -p 82:80 nginx
			docker exec -it mynginx  /bin/bash
			vi /etc/nginx/nginx.conf

3.redis部署

拉取镜像  :docker pull redis
创建容器  :
			docker run -di --name=myredis -p 6389:6379 redis
			docker exec -it myredis  /bin/bash

4.docker安装tomcat

拉取镜像  :docker pull tomcat
创建Nginx容器
			docker run -di --name=mytomcat -p 8090:8080 tomcat
			docker cp myweb.war mytomcat:/usr/local/tomcat/webapps/
			https://www.cnblogs.com/yds941268778/p/12748308.html

四 迁移与备份

1.容器保存为镜像

           命令  :docker commit myredis my_redis_image
看当前系统的镜像  :docker images
创建备份redis容器 :docker run -di --name=my_redis_image_instance -p 6399:6379 my_redis_image
可以看到一个新的容器 :docker ps 

2.镜像备份

​ docker save -o my_redis_image.tar my_redis_image

3.镜像恢复与迁移

需要先删除原有镜像
			docker stop my_redis_image_instance
			docker rm my_redis_image_instance
			docker rmi my_redis_image
			docker load -i my_redis_image.tar
			docker images

五 Dockerfile

1.什么是Dockerfile

​ 之前我们都是用的别人的镜像,如果我们想自己开发一个镜像就需要用到dockerfile
​ Dockerfile其实就是一个文本文件,由一系列命令和参数构成

2.操作步骤

           a.创建目录	
			mkdir –p /usr/local/software/my_docker
		   b.上传jdk-8u152-linux-x64.tar.gz文件到目录/usr/local/software/my_docker
		  c.创建dockerfile文件
			vim Dockerfile
			参看资料里面的文件
		   d.执行命令构建镜像
			docker build -t='jdk1.8' .
		   e.执行 
			docker run -it --name=myjdk jdk1.8 /bin/bash

六 Docker私有仓库

	1.拉取私有仓库镜像
		docker pull registry
	2.启动私有仓库容器
		docker run -di --name=registry -p 5000:5000 registry
	3.访问地址
		http://10.211.55.95:5000/v2/_catalog	
	4.创建并修改配置文件
		 vim /etc/docker/daemon.json
{
	"registry-mirrors": ["https://8y2y8njn.mirror.aliyuncs.com"],
	"insecure-registries":["10.211.55.95:5000"]
}
	5.重启docker服务
		systemctl restart docker
	6.标记此镜像为私有仓库的镜像
		docker tag redis 10.211.55.95:5000/private_redis
	7.再次启动私服容器(因为上面重启的docker服务)
		docker start registry	
	8.上传标记的镜像  
		docker push 10.211.55.95:5000/private_redis
	9.从私有仓库拉取镜像(在另外一台机器上拉取)
		也需要配置vim /etc/docker/daemon.json 这个文件
{
	"registry-mirrors": ["https://8y2y8njn.mirror.aliyuncs.com"],
	"insecure-registries":["10.211.55.95:5000"]
}
		需要重启另外一台服务器
		systemctl restart docker
		docker pull 10.211.55.95:5000/private_redis
		docker images
	docker push 10.211.55.95:5000/private_redis
9.从私有仓库拉取镜像(在另外一台机器上拉取)
	也需要配置vim /etc/docker/daemon.json 这个文件

{
“registry-mirrors”: [“https://8y2y8njn.mirror.aliyuncs.com”],
“insecure-registries”:[“10.211.55.95:5000”]
}
需要重启另外一台服务器
systemctl restart docker
docker pull 10.211.55.95:5000/private_redis
docker images

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值