栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

day02-docker

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

day02-docker

 docker的概述
 docker架构
 docker基本概念
 镜像基本命令
 容器基本命令
 目录挂载方式
 

docker的概述

可以让开发者以便捷方式打包应用到一个可移植的容器中,然后安装至任何运行Linux系统的服务器上,运行时利用沙箱机制形成隔离容器,各个应用互不干扰

docker架构

Docker是一个C/S架构的程序,有两部分组成

  • 服务端(server):Docker守护进程,负责处理Docker指令,管理镜像、容器等
  • 客户端(client):通过命令或RestAPI向Docker服务端发送指令。可以在本地或远程向服务端发送指令。

docker基本概念

镜像
Docker将应用程序及其所需的依赖、函数库、环境、配置等文件打包在一起,称为镜像。

相当于电脑上的“程序”

容器:
镜像中的应用程序运行后形成的进程就是容器,只是Docker会给容器进程做隔离,对外不可见。

相当于电脑上一个正在运行的程序,即进程

一个程序可以多开=》一个程序可以有多个进程=》一个镜像可以有多个容器!

1、docker安装与启动
1)更新yum包

yum update

2)安装需要的软件包

yum install -y yum-utils device-mapper-persistent-data lvm2

3)设置yum源

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo(阿里仓库)

4)查看远程仓库中所有docker版本

yum list docker-ce --showduplicates | sort -r

5)安装docker

yum install docker-ce #安装最新版

yum install docker-ce-20.10.1-3.el7 #安装指定版本(推荐安装此方式)

6)修改Docker远程仓库

本次使用阿里云镜像

登录阿里云,进入 “容器镜像服务” 控制台

容器镜像服务:https://www.aliyun.com/product/acr

注册后,可以在“镜像工具-镜像加速器” 来获得个人的 docker 加速链接地址,地址找到后,执行下面的命令:

#创建目录地址
mkdir -p /etc/docker 
#创建 daemon 文件
vi /etc/docker/daemon.json 
在 daemon.json 文件中添加下面内容:
{
"registry-mirrors": ["https://去阿里云复制的docker地址"] // 每个人的地址都不一样。
}


7)重新启动服务

systemctl daemon-reload
systemctl restart docker

执行命令查看结果

docker info

因为docker会用到很多端口,建议直接关闭linux的防火墙。 

#使用:


systemctl start docker # 启动docker服务

systemctl stop docker # 停止docker服务

systemctl restart docker # 重启docker服务

docker -v #查看版本
2、镜像基本命令
docker images				查看所有镜像
docker pull nginx:1.14.1	下载镜像(若不加版本号,则下载最新版)
docker rmi 605c77e624dd		按照镜像的image id 删除镜像,也可以写镜像和版本号删除,如:
docker rmi nginx:latest 	删除指定镜像
docker save -o [保存的目标文件名称] [镜像名称] 	导出镜像
docker load -i nginx.tar 	加载本地镜像
docker build 				创建镜像
docker push 			 	推送镜像
3、容器基本命令
创建并运行容器:
	docker run --name [自定义容器名字,如nginx] -p 80:80 -d nginx:1.14.1   
		-d:后台运行。 
		80:80: 宿主机端口:容器端口
  
进入容器:
	docker exec -it nginx bash
		-it : 给当前进入的容器创建一个标准输入、输出终端,允许我们与容器交互
		bash:进入容器后执行的命令,bash是一个linux终端交互命令
  
修改容器内文件内容:如修改nginx的index.html内容:(此命令仅做展示,日后有更好的方法)
 先进入指定目录:目录可以在docker官网该镜像文档中的How to use this image栏查询。
	cd /usr/share/nginx/html
	sed -i -e 's#Welcome to nginx#欢迎您#g' -e 's###g' index.html
 
查看容器状态:

	docker ps
	docker ps -a  	查看所有容器,包括已经停止的

查看容器日志:
	docker logs   (加 -f 可以持续查看日志) 

容器开启
	docker start
容器停止
	docker stop
容器暂停
	docker pause
容器继续
	docker unpause
退出容器
	exit
强制删除容器?
	docker rm -f -v nginx

 3.1举例——解读命令:创建并运行容器

docker run --name containerName -p XX:XX -d imageName:tag 创建并运行容器

命令解读:
docker run :创建并运行一个容器
--name : 给容器起一个名字,比如叫做containerName
-p :将宿主机端口与容器端口映射,冒号左侧是宿主机端口,右侧是容器端口
-d:后台运行容器
imageName:镜像名称,例如nginx
tag:版本号

3.2举例——解读命令:进入容器

docker exec -it containerName bash 进入容器

命令解读:
docker exec :进入容器内部,执行一个命令
-it : 给当前进入的容器创建一个标准输入、输出终端,允许我们与容器交互
containerName :要进入的容器的名称
bash:进入容器后执行的命令,bash是一个linux终端交互命令

 

4、目录挂载方式

数据卷挂载:通过一个虚拟目录指向宿主机文件系统中的某个目录。

#数据卷命令
创建数据卷 
docker volume create html
查看所有数据
docker volume ls
查看数据卷详情
docker volume inspect html
删除指定数据卷 
docker volume rm
删除所有未使用的数据卷
docker volume prune

4.1、案例-给nginx挂载数据卷
docker run --name mn -v html:/usr/share/nginx/html -p 80:80 -d nginx

命令解读:
-v html:/root/htm :把html数据卷挂载到容器内的/root/html这个目录中
html:数据卷名,任意起

直接挂载:宿主机目录 ---> 容器内目录

-v [宿主机目录]:[容器内目录]
-v [宿主机文件]:[容器内文件]
4.2、案例-给MySQL挂载本地目录
  docker run    // 创建容器
  --name mysql  // 给容器起名
  -e MYSQL_ROOT_PASSWORD=root  // 设置root账户密码
  -p 3306:3306  // 端口映射
  -d  // 后台运行
  -v /tmp/mysql/data:/var/lib/mysql  // 绑定宿主机上的文件夹
  -v /tmp/mysql/conf/hmy.cnf:/etc/mysql/conf.d/my.cnf  // 绑定宿主机上的文件
  --privileged  // 设置超级管理员远程访问权限
  mysql:5.7 // 镜像名称
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/945142.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号