云原生-01-Docker入门到实战

1、Docker安装

1.1 移除以前docker相关包

#删除原有docker包
yum remove docker*  

1.2 配置yum源

sudo yum install -y yum-utils
sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

1.3 安装docker

#ce是社区版 cli是命令行工具
sudo yum install -y docker-ce docker-ce-cli containerd.io 

#以下是在安装k8s的时候使用的版本(后续k8s系列再用)
yum install -y docker-ce-20.10.7 docker-ce-cli-20.10.7  containerd.io-1.4.6

1.4 启动docker

#配置开机启动,并且现在就启动
systemctl enable docker --now

1.5 验证启动成功

在这里插入图片描述
在这里插入图片描述

1.6 配置aliyun加速(阿里云服务器)

获取阿里云镜像加速地址:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://mzlfopuy.mirror.aliyuncs.com"]
}
EOF
#硬盘中docker内容发生改变  需要守护进程先reload再启动
sudo systemctl daemon-reload
sudo systemctl restart docker

1.7 安装过程中遇到的报错

1.7.1 docker加速地址及相关配置有误

解决方案:严格按照阿里云提供的加速配置来设置daemon.json

● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
   Active: failed (Result: start-limit) since Sat 2022-07-09 20:49:20 CST; 6s ago
     Docs: https://docs.docker.com
  Process: 2030 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock (code=exited, status=1/FAILURE)
 Main PID: 2030 (code=exited, status=1/FAILURE)

在这里插入图片描述

1.7.2 docker状态正常,但执行docker命令失败

#原因:上一次docker未正常退出 
#解决方案:
#退出docker
systemctl stop docker.socket
#重启docker
sudo systemctl restart docker

在这里插入图片描述

2、Docker实战操作

2.1 到hub.docker.com官网查询安装软件包

官网地址:https://hub.docker.com/

2.2 下载容器镜像(以openresty为例)

在这里插入图片描述

#复制docker命令即可(直接拉取默认下载最新的tag包)
docker pull openresty/openresty
#指定版本号下载 :version
docker pull openresty/openresty:1.21.4.1-2-alpine-fat

#查看本地下载了哪些镜像
docker images

#本地删除镜像
docker rmi nginx (docker rmi nginx:latest)
docker rmi 镜像名:版本号/镜像id

在这里插入图片描述

2.3 启动容器(以openresty为例)

#docker 常用的命令
Usage:  docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
docker run 设置项 镜像名

[OPTIONS]
#设置docker启动的容器名称 --name=xxx
docker run --name=myname(容器名) 镜像名
#-d后台运行
docker run -d --name=nginx1 openresty
#--restart服务器重启后应用的启动规则(默认no不启动)
# --restart=always 开机自启动
docker run --restart -d --name=myname(容器名) 镜像名

#做主机端口到容器端口的映射(前面是主机端口,后面是容器80端口)
docker run -p 88:80 --restart -d --name=myname(容器名) 镜像名

#查看正在运行中的容器
docker ps
#查看历史运行的容器
docker ps -a

#删除已经停止的容器
docker rm  c83b66687432(id)/nginx1(name)
#强制删除正在运行的容器
docker rm -f c83b66687432(id)/nginx1(name)

#停止容器
docker stop c83b66687432(id)

#再次启动容器
docker start 容器id/name

#更新容器配置
docker update 容器id/name --restart=always

在这里插入图片描述
访问效果:
在这里插入图片描述

3 、进入容器子系统&修改内容

# 进入容器内部的系统,修改容器内容
docker exec -it 容器id  /bin/bash

#openresty的安装目录 -> /usr/local/openresty
修改nginx配置即可

在这里插入图片描述

4、将容器内容修改后提交

docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]]

#-a作者信息 -m message消息 容器id  
docker commit -a "leifengyang"  -m "首页变化" 341d81f7504f 自定义镜像名:v1.0

 [root@worker1 ~]# docker commit -a "zk"  -m "修改首页" nginx1 changetest:v0.1
sha256:7f9e948dcb972c9786f542f5e063d3ebeb77328e938fe2d655f3e383b05c0587

#保存后重新启动
[root@worker1 ~]# docker run -d --name=nginx1 -p 88:80 changetest:v0.1
49cb611a5bb927e1021b79469144ecfcf7d3f5c72acbe773786e50a2eb132564

5 、本地打包异地部署的2种方式

5.1 本地打成tar包(物理传输后安装)

# 将镜像保存成压缩包(192.168.149.128)
docker save -o testTar.tar guignginx:v1.0

#将tar包传输到其他机器(直接拷贝到其他机器上)
scp testTar.tar root@192.168.149.129:/opt/huawei/openresty
# 别的机器加载这个镜像
docker load -i abc.tar
# 拷贝后离线安装即可

本地打成tar包并传输
在这里插入图片描述
异地加载tar包并运行
在这里插入图片描述
其他服务器访问的效果(虽然内容与上面相同,但主机ip不同)
在这里插入图片描述

5.2 推送远程仓库

#本地先打tag包
#local-image本地的容器名 changetest:v0.1  远程仓名称 zwx883031/openresty_zk_test:v1.0
docker tag local-image:tagname new-repo:tagname
#完整的命令
docker tag  changetest:v0.1 zwx883031/openresty_zk_test:v1.0

#本地登录hub.docker账号
docker login

#推送到远程仓
docker push zwx883031/openresty_zk_test:v1.0

#退出账号
docker logout

在这里插入图片描述

5.3 从远程仓拉取

在这里插入图片描述

docker pull zwx883031/openresty_zk_test:v1.0

6、Docker其他命令

docker logs 容器名/id   排错

docker exec -it 容器id /bin/bash

# docker 经常修改nginx配置文件
docker run -d -p 80:80 \
-v /data/html:/usr/share/nginx/html:ro \
-v /data/conf/nginx.conf:/etc/nginx/nginx.conf \
--name mynginx-02 \
nginx

#把容器指定位置的东西复制出来 
docker cp 5eff66eec7e1:/etc/nginx/nginx.conf  /data/conf/nginx.conf
#把外面的内容复制到容器里面
docker cp  /data/conf/nginx.conf  5eff66eec7e1:/etc/nginx/nginx.conf
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

旧梦昂志

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值