Docker基础之安装部署

1.查看linux系统环境

#内核3.10以上
[root@centos ~]# uname -r
3.10.0-1160.71.1.el7.x86_64

#系统版本
[root@centos ~]# cat /etc/os-release 
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"

2.docker安装

#1.卸载docker,输入以下命令,回车即可
yum remove docker \
docker-client \
docker-client-latest \
docker-commo \
docker-latest \
docker-lates-logrotate \
docker-logrotate \
docker-engine
#2.安装依赖包
yum install -y yum-utils
#3.设置镜像仓库(阿里镜像)
yum-config-manager \
         --add-repo \
         http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  #更新yum软件索引
yum makecache fast
#4.安装docker相关源 docker-ce 社区版  ee 企业版
yum install docker-ce docker-ce-cli containerd.io
#5.启动docker
systemctl start docker
#6.查看docker信息 
docker version
#7.运行hello-world
docker run hello-world
#8.查看下载的hello-world镜像
docker images
#9.卸载docker
 卸载依赖
 yum remove docker-ce docker-ce-cli containerd.io
 删除文件目录
 rm -rf /var/lib/docker    ###docker的默认路径

3. 阿里云镜像加速

1.登录阿里云找容器服务

在这里插入图片描述

2.配置镜像加速

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

创建目录sudo mkdir -p /etc/docker

编译配置文件sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://eyv9zy0e.mirror.aliyuncs.com"]
}
EOF

重启sudo systemctl daemon-reload
    sudo systemctl restart docker

4.run流程与docker原理

1.run流程

1.点击开始后,docker会在本机寻找镜像
2.判断本机是否存在该镜像,若存在,使用该镜像;否则去docker hub下载
3.在docker hub上若找不到,返回错误;若找到将该镜像下载到本地,使用该镜像

2.docker原理

docker是一个C/S结构的系统,docker的守护进程 运行在主机上,通过socket从客户端访问。

通过客户端命令,在守护进程中调用docker,而dockers中的容器时相互隔离的

在这里插入图片描述

3.docker与vm

1.docker有着比vm更少的抽象层
2.docker利用的是宿主机的内核,vm需要的是Guest os

在这里插入图片描述

3.虚拟机属于完全虚拟化,即模拟完整的底层硬件环境特权指令的执行,客户操作系统无需进行修改。
Docker和其它容器技术便是操作系统级虚拟化,即直接通过内核创建虚拟的操作系统实例(内核和库),来隔离不同的进程和资源。
4.在新建一个容器时,docker不需要与vm一样重新加载一个操作系统内核,避免引导。 vm是加载guest os,分钟级别的,docker是利用宿主机的操作系统,省略了复杂的过程,秒级。
5.vm利用hypervisor,模拟出独立的硬件和系统,再次基础上创建应用
  vm是一个主机模拟出多个主机
  vm需要先拥有独立的系统
6.docker 是吧应用及配套环境独立打包成一个单位
  docker 是在主机系统中建立多个应用及配套环境
  docker 是进程级隔离

在这里插入图片描述

4.docke与容器

1.docker是一种实现容器的方案(其他的方案:LXC、RKT);容器是一个技术类型。
2.容器是基于linux内核对进程封装隔离,属于操作系统层面的虚拟化技术;由于
3.隔离的进程独立于宿主或其他的隔离进程,也称为容器。
4.docker可以将一个基础系统镜像可以被多个镜像共用

5.镜像与容器

1.镜像是静态的定义,容器是动态的定义。
2.容器可以被创建、启动、停止、删除等
3.容器的实质是进程,容器进程运行于属于自己的独立的命名空间。
4.镜像与容器都使用分层存储。
  启动容器后,镜像永远只是制度属性,只不过在最上层加入一层读写层(容器层),若需要底层镜像的文件进行修改,读写层会复制一份镜像中的只读层进行写操作。
5.容器存储层的生命周期和容器一样,容器消亡时,容器存储层也随之消亡。
6.镜像是一个包含应用和配置文件,以及底层库的压缩包
  容器是运行这个压缩包,实现具体功能的存在

5.docker常用命令

1.帮助命令

docker version #显示docker的版本信息
docker info    #显示
docker --help  #帮助
注意:官方说明文档https://docs.docker.com/reference/

2.镜像命令

1.docker images #查看镜像文件
[root@centos ~]#  docker images
REPOSITORY   TAG       IMAGE ID   CREATED   SIZE
#REPOSITORY 镜像的仓库源
#TAG        镜像的标签
#IMAGE ID   镜像的id
#CREATED    镜像的创建时间
#SIZE       镜像的大小

参数:
   -a  列出所有镜像
   -q  只显示镜像id
2.docker search镜像搜索
docker search --help 帮助
  --filter=STARS=3000 只搜索3000以上的镜像
3.下载镜像(在官网查看存在的版本)
docker pull mysql 下载镜像(默认最新的版本)
默认最新下载
[root@centos ~]# docker pull mysql
Using default tag: latest #若不写,默认最近最新
latest: Pulling from library/mysql 
72a69066d2fe: Pull complete #分层下载,docker image的核心  联合文件系统
93619dbc5b36: Pull complete 
99da31dd6142: Pull complete 
626033c43d70: Pull complete 
37d5d7efb64e: Pull complete 
ac563158d721: Pull complete 
d2ba16033dad: Pull complete 
688ba7d5c01a: Pull complete 
00e060b6d11d: Pull complete 
1c04857f594f: Pull complete 
4d7cfa90e6ea: Pull complete 
e0431212d27d: Pull complete 
Digest: sha256:e9027fe4d91c0153429607251656806cc784e914937271037f7738bd5b8e7709  #签名
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest  #docker官方存在地址

#两者等价
 docker pull mysql
 docker pull dockerdocker.io/library/mysql:latest

#指定版本下载
docker pull mysql:5.7
4.删除镜像
docker rmi -f 镜像id  #删除指定镜像
docker rmi -f 镜像id  镜像id 镜像id  #删除多个镜像
docker rmi -f $(docker images -aq) #删除全部镜像

3.容器命令

docker pull centos #下载镜像
1.新建容器并启动
docker run [参数] image
#参数
--name="NAME"  容器名字,区分容器
-d             后台方式运行
-it            使用交互方式运行,进入容器查看内容
-p             指定容器端口
      -p ip:主机端口:容器端口
      -p 主机端口:容器端口(常用)
      -p 容器端口
      容器端口
-P             随机指定端口

启动并进入容器
docker run -it centos /bin/bash  
查看ls  #查看容器内的文件,基础版本,很多命令不完整
退出容器回到主机
exit
查看正在运行的docker
docker ps
    -a 查看曾经运行的docker
    -n=? 查看最近创建的容器
    -q    只显示容器的编号
2.退出容器
exit    #直接退出容器并停止运行
ctrl+P+Q  #容器不停止运行退出
3.删除容器
docker rm 容器id   #删除指定的容器,不能删除正在运行的容器,若要强制删除要rm -f
docker rm -f $(docker ps -aq)  #删除所有容器
docker ps -a -q|xargs docker rm #删除所有容器
4.启动和停止容器的操作
docker start 容器id #启动容器
docker stop 容器id  #停止容器
docker restart 容器id #重启容器
docker kill 容器id   #强制停止容器
5.常用的其他命令
1.后台启动容器
#docker run -d 镜像名
    docker run -d centos
    #当docker ps时,无正在运行的容器
    #docker 容器使用后台运行,必须要有一个前台进程,docker发现若没有应用,就会自动停止
    #nginx容器启动后,发现主机没有提供服务,就会立即停止。此时无程序了。
2.查看日志
docker logs -f -t --tail 10 容器id   

#编写shell脚本运行
docker run -d centos /bin/sh -c "while true;do echo moli;sleep 1;done"
#显示日志
  -tf   #显示日志
  --tail number  #显示日志条数
  docker logs -tf --tail 10 80fc793bfc7b
3.查看容器中进程信息ps
docker top 容器id

在这里插入图片描述

4.查看容器的元数据
docker inspect 容器 
5.进入当前正在运行的容器
#通常容器都是使用后台方式运行的,如何进入容器,做配置修改
#命令
docker exec -it 容器id  #进入正在运行的容器,开启了一个新终端,可以进行操作
docker attach 容器id  #进入打印正在执行的终端
6.从容器内拷贝文件到主机
#在容器内test目录下新建文件   touch test.txt 
#退出容器          exit
#将docker中的test文件复制到主机的test
docker cp 容器id:/test/test.txt /test

在这里插入图片描述

常用命令
attach  #当前she1l 下attach连接指定运行镜像
bui1d   #通过Dockerfile定制镜像
commit  #提交当前容器为新的镜像
copy    #从容器中拷贝指定文件或者目录到宿主机中
create  #创建一个新的容器,同run,但不启动容器
diff    #查看docker容器变化
events  #从docker服务获取容器实时事件
exec    #在已存在的容器上运行命令
export  #导出容器的内容流作为一个 tar 归档文忤[对应import ]
history #展示一个镜像形成历史
images  #列出系统当前镜像
import  #从tar包中的内容创建一个新的文件系统映像[对应export]
info    #显示系统相关信息
inspect #查看容器详细信.息.
ki11    #ki11指定docker容器
1oad    #从一个tar包中加戟一个镜像[对应save]
login   #注册或者登陆一个 docker 源服务器
1ogout  #从当前Docker registry退出
logs    #输出当前容器日志信.息.
port    #查看映射端口对应的容器内部源端口
pause   #暂停容器
ps      #列出容器列表
pu11    #从docker镜像源服务器拉取指定像或者库镜像
push    #推送指定镜像或者库镜像至docker源服务器
restart #重启运行的容器
rm      #移除—个或者多个容器
rmi     #移除一个或多个镜像[无容器使用该镜像才可删制除,否则需删除相关容器才可继绩或-f强制删除]
run     #创建一个新的容器并运行一个命令
save    #保存一个镜像为一个 tar包[对应1oad]
search  #在docker hub中搜索镜像
start   #启动容器
stop    #停止容器
tag     #给源中镜像打标签
top     #查看容器中运行的进程信息.
unpause #取消暂停容器
version #查看docker版本号
wait    #截取容器停止时的退出状态值

6.部署nginx

第一步搜索nginx镜像  docker search nginx(按需下载,首先在官网看版本)
第二步下载nginx     docker pull nginx
第三步查看镜像       docker images
第四步启动并创建     docker run -d --name nginx1 -p 8080:80 nginx    #-p  宿主机端口,容器内端口
第五步查看容器       docker ps
第六步测试         
   本地测试 curl localhost:8080

端口暴露概念

在这里插入图片描述

   远程测试:查看宿主机地址

在这里插入图片描述

          在浏览器端访问192.168.108.129:8080,此时表示nginx基本已经部署完成

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值