IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> docker网络模式以及搭建仓库常用命令 -> 正文阅读

[系统运维]docker网络模式以及搭建仓库常用命令

一、常用命令

查看可安装的docker版本
yum list | grep docker

从宿主机复制到容器:docker cp 宿主机本地路径 容器名字/ID:容器路径
docker cp /root/123.txt mycentos:/home/

从容器复制到宿主机:docker cp 容器名字/ID:容器路径 宿主机本地路径
docker cp mycentos:/home/456.txt   /root

宿主机文件夹挂载到容器里:docker run -itd -v 宿主机路径:容器路径 镜像ID
docker run -itd -v /root/xdclass/:/home centos:7

一次性停止所有容器:docker stop $(docker ps -a -q)

二、构建镜像

2.1Commit构建自定义镜像

启动并进入容器:docker run -it centos:7 /bin/bash
在/home 路径下创建xdclass文件夹:mkdir /home/xdclass
安装ifconfig命令:yum -y install net-tools
重启容器,查看容器的xdclass文件夹还在不在:docker restart 67862569d4f7
删除容器,再重新启动一个容器进入查看有没有xdclass文件夹:docker rm 67862569d4f7 && docker run -it centos:7 /bin/bash
构建镜像:
docker commit 4eb9d14ebb18 mycentos:7
docker commit -a “XD” -m “mkdir /home/xdclass” 4eb9d14ebb18 mcentos:7
-a:标注作者
-m:说明注释
查看详细信息:docker inspect 180176be1b4c
启动容器:docker run -itd 180176be1b4c /bin/bash
进入容器查看:docker exec -it 2a4d38eca64f /bin/bash

2.2 dockerfile构建镜像

FROM centos:7
# 设置作者
MAINTAINER XD 123456@qq.com
# RUN 是执行命令
RUN echo "正在构建镜像!!!"
# 设置工作目录,容器内的工作目录
WORKDIR /home/xdclass
# COPY 当前目录下的文件 到容器内的某个目录
COPY 123.txt /home/xdclass
# RUN 是执行命令,在容器内执行的命令
RUN yum install -y net-tools

Dockerfile

构建dockerfile文件:docker build -t mycentos:v2 .

查看:docker images

三、DockerFile常用的Dockerfile指令

FROM 基于哪个镜像
MAINTAINER 注明作者
COPY 复制文件进入镜像(只能用相对路径,不能用绝对路径)
ADD 复制文件进入镜像(假如文件是.tar.gz文件会解压)
WORKDIR 指定工作目录,假如路径不存在会创建路径
ENV 设置环境变量
EXPOSE ** 暴露容器端口**
RUN 在构建镜像的时候执行,作用于镜像层面
ENTRYPOINT 在容器启动的时候执行,作用于容器层 ,dockerfile里有多条时只允许执行最后一条
CMD 在容器启动的时候执行,作用于容器层 ,dockerfile里有多条时只允许执行最后一条

容器启动后执行默认的命令或者参数,允许被修改
命令格式:
shell命令格式:RUN yum install -y net-tools
exec命令格式:RUN [ “yum”,“install” ,"-y" ,“net-tools”]

#第一个
FROM centos:7
RUN echo "images building!"
CMD ["echo","container","starting..."]
ENTRYPOINT ["echo","container","starting !!!"]
#第二个
FROM centos:7
RUN echo "images building!"
CMD ["echo","containe1r","starting..."]
CMD ["echo","container2","starting..."]
ENTRYPOINT ["echo","container2","starting !!!"]
ENTRYPOINT ["echo","container2","starting !!!"]
#第三个
FROM centos:7
CMD ["-ef"]
ENTRYPOINT ["ps"]
FROM centos:7
ADD jdk-8u211-linux-x64.tar.gz /usr/local
RUN mv /usr/local/jdk1.8.0_211 /usr/local/jdk
ENV JAVA_HOME=/usr/local/jdk
ENV JRE_HOME=$JAVA_HOME/jre
ENV CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
ENV PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
ADD apache-tomcat-8.5.35.tar.gz /usr/local
RUN mv /usr/local/apache-tomcat-8.5.35 /usr/local/tomcat
EXPOSE 8080
ENTRYPOINT ["/usr/local/tomcat/bin/catalina.sh","run"]

docker run -itd -p 80:8080 -v /root/test/ROOT:/usr/local/tomcat/webapps/ROOT
mycentos:jdk /bin/bash

四、docker网络模式

默认的三种网络模式:
bridge:桥接模式
host:主机模式
none:无网络模式
查看网络模式:
docker network ls

4.1桥接模式

桥接模式是docker 的默认网络设置,当Docker服务启动时,会在主机上创建一个名为docker0的虚拟网桥,并选择一个和宿主机不同的IP地址和子网分配给docker0网桥

请添加图片描述

安装工具:
yum -y install net-tools
yum install -y bridge-utils

查看网络路由 route -n

查看桥接情况:
brctl show

请添加图片描述

请添加图片描述

4.2 host模式

host 模式:该模式下容器是不会拥有自己的ip地址,而是使用宿主机的ip地址和端口。

请添加图片描述

启动nginx容器命令并防火墙放开80端口:
docker run -d --net=host mycentos:nginx /usr/local/nginx/sbin/nginx -g “daemon off;”
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload

4.3 none模式

none模式:关闭模式
无法连外网

同一个服务器,桥接模式下 ,同一个服务器中的 多个镜像网络是 互通的

4.4 Docker 容器间基于Link实现单向通信

基于link单向通信

启动mysql数据库容器:

docker run --name mydb -e MYSQL_ROOT_PASSWORD=abc123456 -d mysql:5.7

启动tomcat应用容器并link到mysql数据库:

docker run -itd --name tomcat1 --link mydb tomcat:tag注意:mydb 这个容器一定要存在!

官方版的mysql 5.7 需要安装工具才有ping命令:

apt-get update && apt-get install iputils-ping

4.5 Docker容器间利用brige网桥实现双向通信

创建一个新的网桥:docker network create -d bridge my_bridge
启动第一个容器:docker run -itd --name tomcat centos:7
启动第二个容器:docker run -itd --name redis centos:7
把第一个容器加入网桥:docker network connect my_bridge tomcat
把第二个容器加入网桥:docker network connect my_bridge redis
最后分别进入俩个容器中进行验证

4.6 Docker容器的特权模式介绍

启动一个普通的容器
docker run -itd --name mycentos centos:7 /bin/bash
安装网络工具:
yum -y install net-tools
执行route -n
删除网关:
route del default gw 172.17.0.1
启动拥有特权模式的容器:docker run -itd --privileged=true --name mycentos1 centos:7 /bin/bash
进入容器:
docker exec -it ef /bin/bash
删除网关
route del default gw 172.17.0.1
成功 备注:特权模式用的比较少

4.7 使用volume容器共享创建nginx集群

使用–volumes-from 实现容器与容器之间volume共享
创建nginx1
docker run -itd -p 8080:80 -v /usr/local/nginx/html:/usr/local/nginx/html --name nginx1
mycentos:nginx /usr/local/nginx/sbin/nginx -g “daemon off;”
创建nginx2
docker run -itd -p 8081:80 --volumes-from nginx1 --name nginx2 mycentos:nginx
/usr/local/nginx/sbin/nginx -g “daemon off;”
创建nginx3
docker run -itd -p 8082:80 --volumes-from nginx1 --name nginx3 mycentos:nginx
/usr/local/nginx/sbin/nginx -g “daemon off;”
对/usr/local/nginx/html/index.html进行修改
打开浏览器进行访问测试

使用docker inspect 容器ID 可以查看详细的挂载信息
请添加图片描述

compose操作容器(一定要进入配置文件目录)
后台启动容器:docker-compose up -d
查看容器运行情况:docker-compose ps
停止并删除容器:docker-compose down
停止并删除容器并删除volume:docker-compose down --volumes
停止启动容器:docker-compose stop;docker-compose start
docker-compose exec的使用:docker-compose exec redis bash
总结:
操作docker-compose一定要在配置文件docker-compose.yml文件路径下操作
格式一定要注意,该空格要空格

docker-compose.yml的三大部分:version,services,networks,最关键是services和networks两个部分
compose设置网络模式
compose使用端口映射
compose设置文件共享
compose管理多个容器

ps -ef | grep nginx

netstat -tunlp | grep

请添加图片描述


请添加图片描述
请添加图片描述

五、阿里云仓库

阿里云镜像仓库申请地址:
https://cr.console.aliyun.com/cn-shanghai/instances/repositories步骤:
登录阿里云Docker Registry
$ sudo docker login --username=用户名registry.cn-shenzhen.aliyuncs.com

将镜像推送到Registry

登录
$ sudo docker login --username=用户名 registry.cn-shenzhen.aliyuncs.com

改名

$ sudo docker tag [ImageId] registry.cn-shenzhen.aliyuncs.com/xdclassimages/mysql:[镜像版本号]

推送

$ sudo docker push registry.cn-shenzhen.aliyuncs.com/xdclassimages/mysql:[镜像版本号]

从Registry中拉取镜像
$ sudo docker pull registry.cn-shenzhen.aliyuncs.com/xdclassimages/mysql:[镜像版本号]

六、构建自己的镜像仓库Harbor

安装之前确保前置条件是否满足,需要安装docker、docker-compose、openssl以及python2.7以上安装 yum -y install openssl
Harbor离线版安装下载地址
https://github.com/goharbor/harbor/releases上传对应安装包

修改配置:harbor.yml
修改主机名(注意空格):hostname: 192.168.0.151
修改密码(注意空格):harbor_admin_password: Harbor12345
执行脚本:sh prepare
执行安装命令:sh install.sh执行命令:docker-compose ps
访问Harbor,默认用户名admin
关闭:docker-compose down
启动:docker-compose up -d

请添加图片描述

登录
请添加图片描述

企业核心篇幅之harbor仓库配置与使用
简介:配置与使用harbor仓库
Docker配置使用自建仓库
默认docker只允许访问 https仓库
如果要访问http仓库需要自己配置
配置允许访问http仓库:/etc/docker/daemon.json
{
“insecure-registries”:[“http://192.168.0.151”]
}

请添加图片描述

重启docker服务:systemctl restart docker.service

网页上创建项目名
请添加图片描述

登录:docker login --username=admin 192.168.0.151
改名:docker tag mysql:5.7 192.168.0.151/xdclass/mysql:5.7
推送:docker push 192.168.0.151/xdclass/mysql:5.7
下载:docker pull 192.168.0.151/xdclass/mysql:5.7
docker login 后有一个登录凭证(可删除,下次需要密码):
/root/.docker/config.json (建议从安全角度出发,每次登录后进行删除)

可以删除 config.json 文件
请添加图片描述

七、实战系列之本地镜像容器的载入与载出

镜像的本地载入载出俩种办法:
保存镜像
保存容器

保存镜像(二选一):
docker save cd3ed0dfff7e -o /home/mysql.tar
docker save mysql:5.7 > /home/mysql.tar
载入镜像:
docker load -i mysql.tar

保存容器:
docker export 974b919e1fdd -o /home/mysql-export.tar
载入容器:
docker import mysql-export.tar

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-08-05 17:44:38  更:2021-08-05 17:45:04 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 18:20:32-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码