发布时间:2025-03-25 14:41来源:www.stxyjg.com作者:新羽手游网
1 docker pull mysql
2 docker run -v /data/var/mysql/:/var/lib/mysql -e YSQL_ROOT_PASSWORD=kS4pJUIb mysql
3 docker stop [CONTAINER ID]
4 docker run -it -v /data/var/mysql/:/var/lib/mysql mysql /bin/bash
5 mysqld_safe&
6 grant all privileges on *.* to 'wuxiao'@'%' identified by 'password';
7 docker cp [CONTAINER ID]:/etc/mysql/my.cnf /data/local/my.cnf
8 docker stop [CONTAINER ID]
9 docker run -d -p 3306:3306 -v /data/var/mysql/:/var/lib/mysql -v /data/local/my.cnf:/etc/mysql/my.cnf mysql
10 add [CMD] to /etc/rc.local
11 OK!
pom.xml文件定义mainClass为sparkexample.Hello,需要在src/main/java/sparkexample/目录下创建Hello.java文件。Dockerfile
最后我们来编写Dockerfile文件,这个Dockerfile使用到了Java镜像(java:oracle-java8),并从安装Maven开始做起。下一步它会安装项目依赖。我们通过pom.xml来解析这些依赖,正如你所看到的,它允许Docker缓存这些依赖。下一步,要编译打包应用,并启动应用。如果重建应用时,pom.xml文件没有任何修改,之前的步骤都被缓存下来了,直接到最后一步启动应用。这可以加快应用的重新构建速度。
创建和运行
一旦这三个文件已经完成,那创建Docker镜像就变得轻而易举了。
$ docker build -t giantswarm/sparkexample .
注意:首次启动时会花费一些时间,因为它要安装Maven并下载所有的依赖。之后再启动就需要几秒钟,因为所有的东西都已经缓存了。
镜像创建之后,用下面的命令创建容器:
docker run -d -p 4567:4567 giantswarm/sparkexample
用下面的命令访问:
curl localhost:4567 hello from sparkjava.com
docker run指定的命令如果不是那些一直挂起的命令(比如运行top,不断echo),就是会自动退出的。-d命令是设置detach为true,根据官方的文档,意思是让这个命令在后台运行,但并不是一直运行(我们在一个正常的Linux Terminal中运行/bin/bash,运行完了也就完了,不会一直挂着等待响应的,所以确实没办法用daemon方式来跑/bin/bash)。
这个地方官方早期和现在的文档也确实有些前后不一致,现在是detach,早期的文档说指定-d以daemon方式来运行容器,可能存在一定的误解。
另外,如果你需要跑容器里的bash,直接运行docker run -i -t CONTAINER_NAME /bin/bash 就可以了,如果觉得参数比docker attach多,可以设置一个别名(alias)来解决:
alias dockerbash='docker run -i -t CONTAINER_ID /bin/bash'
设置好别名后,直接运行dockerbash就可以进入容器的bash了
你好,使用方法如下:
首先我们让ovsdb-server监听一个TCP端口:
ovs-appctl -t ovsdb-server ovsdb-server/add-remote ptcp:6640
接下来,启动ovn-northd后台进程。这个进程负责将来自Docker的网络信息(存储在OVN_Northbound 数据库中)转换成逻辑流存储于OVN_Southbound数据库。
/usr/share/openvswitch/scripts/ovn-ctl start_northd
2、一次性配置
在每一个你打算创建容器的主机上,你需要运行以下的命令(如果你的OVS数据库被清空,你需要再次运行这个命令。除此之外,重复运行这个命令都是没有任何影响的)。
其他的主机可以通过$LOCAL_IP地址来访问到这个主机,它就相当于本地通道的端点。
$ENCAP_TYPE是指用户想使用的通道的类型。它可以是”geneve“或者”stt“。(注意,你的内核需要支持以上两个类型,用户可以通过运行以下命令来检测内核是否支持以上类型:llsmod | grep $ENCAP_TYPE)。
ovs-vsctl set Open_vSwitch . external_ids:ovn-remote=tcp:$CENTRAL_IP:6640 external_ids:ovn-encap-ip=$LOCAL_IP external_ids:ovn-encap-type=$ENCAP_TYPE
最后,启动ovn-controller(你需要在每一次启动时运行以下命令):
/usr/share/openvswitch/scripts/ovn-ctl start_controller
3、启动Open vSwitch网络驱动
在默认情况下,Docker使用Linux网桥,但它支持外扩展。为了替换Linux网桥,我们需要先启动Open vSwitch驱动。
Open vSwitch驱动使用了Python Flask模块来监听Docker的网络API请求。因此,用户需要先安装Python 的Flask模块。
easy_install -U pip pip install Flask
在每一个你想要创建容器的主机上启动Open vSwitch驱动:
ovn-docker-overlay-driver --detach
Docker内部包含了一些模块,这些模块拥有类似于OVN的逻辑交换机和逻辑端口的概念。请读者仔细阅读Docker的文档来查找相关的命令。这里我们给出了一些案例:
1)创建用户自己的逻辑交换机
下面的命令创建了一个名为”foo“的逻辑交换机,它的网段为”192.168.1.0/24”:
NID=`docker network create -d openvswitch --subnet=192.168.1.0/24 foo`
2)显示已有逻辑交换机
docker network ls
你也可以通过以下命令从OVN的northbound数据库中查找到这个逻辑交换机:
ovn-nbctl --db=tcp:$CENTRAL_IP:6640 lswitch-list
3)Docker创建逻辑端口,并且将这个端口附加到逻辑网络上
比如说,将一个逻辑端口添加到容器busybox的“foo”网络上:
docker run -itd --net=foo --name=busybox busybox
4)显示所有的逻辑端口
Docker现在并没有一个CLI命令来罗列所有的逻辑端口,但是你可以从OVN的数据库中找到它们:
ovn-nbctl --db=tcp:$CENTRAL_IP:6640 lport-list $NID
5)用户也可以创建一个逻辑端口,并将它添加到一个运行中的容器上:
docker network create -d openvswitch --subnet=192.168.2.0/24 bar docker network connect bar busybox
用户可以删除逻辑端口,或者将它们从运行容器上分离出来:
docker network disconnect bar busybox
6)用户也可以删除逻辑交换机:
docker network rm bar
萌宠解谜类似游戏?
王者荣耀英雄训练场攻略技巧
有没有跳舞类的小游戏?
王者荣耀从青铜到荣耀王者要多少局?
穿越火线手游怎么获得屠龙者边框?
部落冲突兵种先升级哪个好
好玩的手机单机游戏有哪些
十款好玩的云游戏?
类似帝国时代的单机手机游戏?
迷你世界
类型:休闲益智
钢琴音乐大师
类型:休闲益智
开心消消乐
类型:休闲益智
我的汤姆猫
类型:休闲益智
白块儿达人-节奏钢琴黑白块
类型:休闲益智
纸嫁衣4红丝缠
类型:休闲益智
停车我最强
类型:休闲益智
贪吃蛇大作战
类型:休闲益智
米加小镇:世界
类型:休闲益智