022、如何运行容器(2019-01-15 周二)

 
之前的章节学习了如何构建Docker镜像,并通过镜像运行容器,从今天开始学习容器的各种操作,容器各种状态之间如何转换,以及实现容器的底层技术
 
运行容器
 
dokcer run 是运行容器的方法,之前我们已经学习了三种指定容器启动时执行命令的方法
    1、CMD 指令
    2、ENTRYPOINT 指令
    3、在 docker run 命令行中指定
 
在下面的例子中,发现docker run运行后容器直接退出了,没有持续运行
 
root@docker-lab:~# docker run ubuntu pwd
/
root@docker-lab:~# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
root@docker-lab:~# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                     PORTS               NAMES
a4f89f53eaa3        ubuntu              "pwd"               6 seconds ago        Exited (0) 5 seconds ago                       quizzical_shtern
root@docker-lab:~#
 
 
如何让容器长期运行
 
容器的生命周期依赖启动时执行的命令,只要该命令不结束,容器也就不会退出
 
下面的例子可以保证容器不会退出,但是这样占用了一个终端,当终端关闭的时候容器也就退出了,这并不是我们想要的效果
 
root@docker-lab:~# docker run busybox ping 127.0.0.1
PING 127.0.0.1 (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: seq=0 ttl=64 time=0.070 ms
64 bytes from 127.0.0.1: seq=1 ttl=64 time=0.103 ms
64 bytes from 127.0.0.1: seq=2 ttl=64 time=0.056 ms
64 bytes from 127.0.0.1: seq=3 ttl=64 time=0.055 ms
64 bytes from 127.0.0.1: seq=4 ttl=64 time=0.054 ms
64 bytes from 127.0.0.1: seq=5 ttl=64 time=0.054 ms
64 bytes from 127.0.0.1: seq=6 ttl=64 time=0.060 ms
64 bytes from 127.0.0.1: seq=7 ttl=64 time=0.054 ms
64 bytes from 127.0.0.1: seq=8 ttl=64 time=0.053 ms
64 bytes from 127.0.0.1: seq=9 ttl=64 time=0.053 ms
 
 
新开一个终端进行查看
 
root@docker-lab:~# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED              STATUS                            PORTS               NAMES
0683d1da57ed        busybox             "ping 127.0.0.1"    16 seconds ago        Up 16 seconds                                         ecstatic_visvesvaraya
 
 
docker run -d 可以让容器在后台启动,不会占用终端
 
当容器启动是会返回一长串字符,这串字符是该容器的ID,docker ps 中也看到一个ID,但是只有12位,这12位是容器完整ID的前12个字符
docker ps 中还能看到容器的名字,如果启动容器是不使用 --name 指定容器名称,docker会自动给容器起一个名字
 
长ID、短ID和NAME 都能代表一个具体的容器
 
root@docker-lab:~# docker run -d busybox ping  127.0.0.1
40112e9d5ae06f399c1c1ed4a1033725975b9a0473025d417aeee419d61fc213
root@docker-lab:~# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
40112e9d5ae0        busybox             "ping 127.0.0.1"    6 seconds ago        Up 5 seconds                            focused_mendeleev
root@docker-lab:~# docker stop 40112e9d5ae0
40112e9d5ae0
root@docker-lab:~# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED              STATUS                       PORTS               NAMES
40112e9d5ae0        busybox             "ping 127.0.0.1"    About a minute ago    Exited (137) 2 seconds ago                       focused_mendeleev
root@docker-lab:~#
root@docker-lab:~# docker run --name test022 -d busybox ping  127.0.0.1
80971ed377ae31567097d58c43a1e818d3d099c8a3881534683e36aa57a5c519
root@docker-lab:~# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED              STATUS                        PORTS               NAMES
80971ed377ae        busybox             "ping 127.0.0.1"    3 seconds ago        Up 2 seconds                                      test022
40112e9d5ae0        busybox             "ping 127.0.0.1"    About a minute ago   Exited (137) 47 seconds ago                       focused_mendeleev
 
 
 

转载于:https://www.cnblogs.com/www1707/p/10274994.html

### 回答1: 如果 ECharts 的 dataZoom-inside 不支持手机的 touch 事件,可以尝试使用 dataZoom-slider 组件,该组件支持 PC 和移动端的触摸事件。具体方法如下: 1. 在 ECharts 的 option 中添加 dataZoom-slider 组件,例如: ``` dataZoom: { type: 'slider', start: 0, end: 100, zoomLock: true } ``` 2. 可以设置 start 和 end 来确定 dataZoom 的初始范围,通过 zoomLock 属性来控制是否锁定缩放比例。 3. 如果需要设置 dataZoom 的样式,可以在 option 中添加 xAxis 和 yAxis 的属性,例如: ``` xAxis: { boundaryGap: true, data: ['周一', '周二', '周三', '周四', '周五', '周六', '周日'], axisLabel: { show: true, textStyle: { color: '#333' } } }, yAxis: { type: 'value', axisLabel: { show: true, textStyle: { color: '#333' } } } ``` 4. 最后,需要在使用 ECharts 的页面中引入 echarts.min.js 文件。 以上方法可以解决 ECharts 的 dataZoom-inside 组件不支持手机的 touch 事件的问题,使用 dataZoom-slider 组件可以实现 PC 和移动端的兼容。 ### 回答2: 对于ECharts的dataZoom-inside不支持手机的touch事件的情况,可以采取以下解决方案。 1. 使用third party库:可以考虑引入一些第三方库,如hammer.js等,来增加手机端的touch事件支持。这些库可以帮助处理触摸事件,包括手势识别和事件处理,并将其与ECharts中的dataZoom-inside结合使用。 2. 自定义事件处理程序:通过自定义事件处理程序,可以捕获并处理手机端的touch事件。在dataZoom-inside所在的容器上,监听触摸事件,并根据触摸的位置和手势移动的方向,实现类似于dataZoom-inside的缩放和拖拽效果。 3. 响应式设计:重新考虑使用ECharts的其他组件,如dataZoom-slider等,它们在手机端的触摸事件支持更好。根据用户设备的不同,可以选择合适的组件进行展示和操作。 4. 修改源码:若具备开发能力,在ECharts源码的基础上进行改动,增加手机端的touch事件支持,使dataZoom-inside能够适配手机端的操作。 综上所述,要解决ECharts的dataZoom-inside不支持手机的touch事件,我们可以使用第三方库、自定义事件处理程序、响应式设计或修改源码等方式来增加手机端的touch事件支持,以实现手机端的触摸操作。 ### 回答3: ECharts是一个强大的数据可视化库,提供了丰富的交互功能,其中包括dataZoom-inside(内置型数据区域缩放)。然而,确实有时候在手机上使用dataZoom-inside时会遇到不支持触摸事件的问题。 解决这个问题的方法有以下几种: 1. 使用dataZoom-slider代替dataZoom-inside:dataZoom-slider是ECharts提供的另一种数据区域缩放方式,它适用于手机触摸事件,并且提供了滑动条来进行缩放操作。可以考虑尝试使用dataZoom-slider来代替dataZoom-inside,以实现在手机上的交互操作。 2. 自定义事件处理:可以通过ECharts的事件处理机制,自定义某个元素的触摸事件来实现dataZoom-inside的缩放效果。具体步骤包括监听触摸事件,根据触摸位置计算缩放比例,然后更新dataZoom-inside的缩放范围。这需要对ECharts的事件处理机制有一定的了解,并且需要根据具体情况进行适配和调整。 3. 使用ECharts的扩展插件:ECharts社区中有一些第三方扩展插件,可以用来增强ECharts的功能和交互性。可以在插件市场或者GitHub上搜索相关扩展插件,并查看是否有支持手机触摸事件的dataZoom-inside扩展插件。 总之,尽管ECharts的dataZoom-inside在手机上不支持触摸事件,但可以通过替代解决方案、自定义事件处理或者使用扩展插件的方式来弥补这个问题,以满足手机端的需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值