Windows10 dockerdesktop 创建镜像步骤
引入:
在部署毕节服务器时遇到了个问题:
因为在三台服务器做好ovirt-engine超融合后,在主节点服务器上部署可视化平台需要安装mysql5.7,但是安装mysql时需要卸载一些依赖,但是由于怕影响原有的postgresql数据库和ovirt-engine的服务组件,选择了用docker容器部署mysql数据库。
在顺利创建好容器,配置好mysql远程连接后,发现用navicat死活连不上,部署mysql8也连不上,能改的配置文件都改了,路由也开放了,端口也开放了,就是不得行。非常怀疑是ovirt-engine超融合的一些设置影响了docker容器和宿主机的网络沟通。
后面没办法就创建了台虚拟机作为mysql服务器。
隔了一天偶然翻博客发现docker容器有个主机模式,这玩应好像直接用的宿主机的网络和端口。于是尝试着在自己公司部署了一下,还真行。然后就想着直接部署好创建一个自己的镜像,以后方便点。于是就有了这篇部署记录。
了解Docker的资源隔离和主机模式
此模式下 dockers 容器与宿主机在同一个网络中,但没有独立IP地址。
docker使用了Linux的Namespaces技术来进行资源隔离,如:
- PID Namespace隔离进程
- Mount Namespace隔离文件系统
-
Network Namespace隔离网络等
一个Docker容器一般会分配一个独立的Network Namespace。但如果启动容器的时候使用host模式,那么这个容器将不会获得一个独立的Network Namespace,而是和宿主机共用一个Network Namespace。容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用宿主机的IP和端口。
创建 centos7 容器
创建mysql数据目录
mkdir -p /usr/mysql/data创建容器
docker run -dit --name mysql5.7 --privileged=true --network=host \ -v /usr/mysql/data:/var/lib/mysql \ centos:centos7 /usr/sbin/init因为用了主机模式--network=host,所以就不用映射端口了。
进入容器
docker exec -it mysql5.7 /bin/bash安装必要的工具
yum install -y wget部署mysql5.7
参考本宝宝的另一篇博客:
创建Docker Hub 仓库
https:/// 注册登录创建自己的仓库,可以是公共也可以是私有
注意自己的仓库命名,最好是见名知义,因为仓库名就是后面镜像的名称
在服务器上登录你的 docker
docker login生成镜像
创建自己的镜像
docker commit -m "centos7 with mysql5.7" -a "echoo" a3dee73dbafa cent7sql:5.7-m 描述信息-a 作者信息a3dee73dbafa 容器idcent7sql:5.7 镜像名:版本标签注意:当你登录了自己的
docker后,查看镜像你会发现镜像名多了点东西
如
/centos,这里的
就是
Docker Hub的公共用户名,
centos则是镜像仓库的名字。
此时我这个镜像名是不符合规则的,如果直接推送会报错,必须按照
用户名/仓库名:版本标签这样的规则命名,这就是为啥上面创建仓库的时候说最好要见名知义。
更改镜像名字(重新打一个标签)
docker tag cent7sql:5.7 echoo2787/centos7:sql5.7 这样的命名就可以啦
提交镜像
docker push echoo2787/centos7:sql5.7这个命令在创建仓库完成后那个页面右边可以找到
Docker的三种网络代理配置:dockerd pull镜像代理;容器docker run网络代理;docker build代理--build-argdocker pull 代理
rdesktop 支持 windows10吗 rdesktop 参数
(精华)2020年10月30日 Docker Windows10安装Docker Desktopwindows10下安装docker
windows 10 remote desktopmicrosoft remote desktop
windows 安装docker desktop docker windows10安装
docker desktop windows 10 2h2 无法兼容 windows支持docker
Windows Server 2019服务器 Docker Desktop windows server 2019服务器管理器打不开
docker desktop requires the server service to be enabled windows 10
