Docker

Docker安装

Docker官网:
https://www.docker.com/
Github Docker 源码:
https://github.com/docker/docker-ce

Windows版Docker安装

在安装之前

  • windows必须是10和64位版本
  • 需要启用Windows操作系统中的Hyper-V和容器特性

步骤

  • 开启BIOS设置中的硬件虚拟化支持

Linux上安装Docker

纵观Docker

[sudo] docker version: 用来检查客户端和服务端是否都已经成功运行

sudo docker image ls: 查看拉取的镜像

sudo docker container run: 从镜像来启动容器
	在Linux中启动容器的命令:sudo docker container run -it ubuntu:latest /bin/bash
	在Windows中启动容器的命令:sudo docker container run -it microsoft/powershell:nanoserver pwsh.exe
	注意:其中 -it 参数会将Shell切换到容器终端——现在已经定位到容器内部了
	
sudo docker container ls: 查看系统内全部处于运行状态的容器

sudo docker container exec: 可以将Shell连接到一个运行中的容器终端
	在Linux中:sudo docker container exec -it vigilant_borg bash
		 	  vigilant_borg是示例的容器名,需要改成自己的名称
	在Windows中: sudo docker container exec -it pensive_hamilton pwsh.exe
		      pensive_hamilton是示例的容器名,需要改成自己的名称

sudo docker container stop: 停止并杀死容器
		sudo docker container stop vigilant_borg
		其中vigilant_borg是示例容器,需要改为自己的名称
		
sudo docker container rm: 停止并杀死容器

sudo docker container ls -a: 让docker容器列出所有的容器,甚至包括哪些处于停止状态的

sudo docker image build: 根据Dockerfile中的指令来创建新的镜像
		新建的Docker镜像名为test:latest
		docker image build -t test:latest

容器内部运行命令

  • ps:查看当前正在运行的全部进程
  • ctrl -PQ组合键:可以在退出容器的同时还保持容器运行

Docker镜像

将镜像拉取到本地
	sudo docker image pull ubuntu:latest
	sudo docker image pull alpine:latest
检查Docker主机的本地仓库中是否包含镜像
	sudo docker image ls


镜像命名和标签

需要给出镜像的名字和标签,就能在官方仓库中定位一个镜像(采用“:”分隔)

  • 注意如果没有指定具体的镜像标签,则Docker会假设用户希望拉取标签为latest的镜像
镜像仓库拉取镜像
	sudo docker image pull <repository>:<tag>
	参数 -a 拉取仓库中的全部镜像
		sudo docker image pull -a <repository>

从非官方仓库拉取镜像也是类似,只需要在仓库名称前加上Docker Hub的用户名或者组织名称
	使用者必须登录第三方账号
	sudo docker image pull nigelpoulton/tu-demo:v2
	
过滤docker image ls 输出内容
	返回悬虚镜像(没有标签的镜像)
		sudo docker image ls --filter dangling=true

通过cli方式搜索docker hub
	最多返回25行
	sudo docker search nigelpoulton

镜像和分层
	sudo docker image pull ubuntu:latest
		- pull complete分层
	sudo docker image inspect ubuntu:latest
		- sha256散列值识别镜像层

删除镜像
	sudo docker image rm alpine:latest

Docker容器

检查容器是否正常运行
	sudo docker version
	输出client 和 server

启动一个简单容器
	sudo docker container run -it ubuntu:latest /bin/bash

ctrl +pq组合键可以退出容器,但并不终止容器运行

观察当前系统正在运行的容器列表
	sudo docker container ls

重新连接到Docker
	sudo docker container exec -it <image ID> bash

删除容器
	sudo docker container stop <容器id>
	sudo docker container rm <容器id>

容器生命周期
	容器不能持久化数据
	
	

检查常见错误

  • server出现错误码,这说明docker daemon很可能没有运行或者当前用户没有权限访问
    • 没有权限 usermod -aG docker <user>
    • 没有运行 service docker status
    • systemctl is-active docker

Docker容器化

完整的应用容器化过程主要分为以下几个步骤

  • 编写应用代码
  • 创建一个Dockerfile,其中包括当前应用的描述、依赖以及该如何运行这个应用
  • 对该Dockerfile执行docker image build命令
  • 等待Docker将应用程序构建到Docker镜像中
    一旦应用容器化(即应用被打包为一个Docker镜像),就能以镜像的形式交付并以容器的方式运行了。
容器化当前应用/构建具体的镜像
	sudo docker image build -t web:latest . 
	<< don't forget the period(.)

推送镜像到仓库
	1. 首先登录Docker Hub
		docker login
		Username:
		password
	2. 为当前镜像重新打一个标签
		nigelpoulton换成自己的DockerID
		docker image tag web:latest nigelpoulton/web:latest
	3. 将该镜像推送到DockerHub
		docker image push nigelpoulton/web:latest
	4. 运行应用程序
		docker container run -d --name c1 \
		-p 80:8080 \
		web:latest
	5. app测试
		地址栏输入网址:80端口
		ubuntu得到ip方法:
			sudo nano /etc/resolv.conf
			nameserver
			

Docker Compose部署应用

Docker Compose,它能够在Docker节点上,以单引擎模式进行多容器应用的部署和管理。

Linux上安装Docker Compose

  • 在github上查看Docker Compose版本
  • 参考网址
  • https://blog.csdn.net/qq_20402911/article/details/108975233
  • 注意:只是安装了,并没有具体使用,后面如果用到,就会继续添加说明。
切换到管理员账号
	sudo -i
安装docker compose
	sudo curl -L https://github.com/docker/compose/releases/download/1.24.0/docker-compose-`uname -s`-`uname -m`> /usr/local/bin/docker-compose
下载docker-compose二进制文件后,使用如下命令使其执行
	sudo chmod +x /usr/local/bin/docker-compose
检查版本
	sudo docker-compose --version

Docker Swarm

swarm有两个核心组件

  • 安全集群
  • 编排引擎
  • 后面会根据课程的东西更新
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值