首页 > 网站 > 建站经验 > 正文

Docker 实用技巧总结

2019-11-02 16:14:15
字体:
来源:转载
供稿:网友

我有机会建立一个以Docker为基础的微服务架构在我现在的工作中,很多人都会分享他们使用Docker的心得,我想我也不会例外。因此我总结了一些,可能你会在日常使用Docker的时候会用到。

1. 一台主机部署多个Docker实例

如果你想运行多个Docker 容器在一台主机上,如果要设置不同的TLS设置,网络设置,日志设置和存储驱动程序特定的容器,这是特别有用的。例如,我们目前正在运行一个标准设立两个Docker守护进程。一运行consul提供DNS解析,并作为群集存储为其他Docker 容器。

For example:

# start a docker daemon and bind to a specific portdocker daemon -H tcp://$IP:5000 --storage-opt dm.fs=xfs /      -p "/var/run/docker1.pid" /      -g "/var/lib/docker1" /      --exec-root="/var/run/docker1# and start another daemondocker daemon -H tcp://$IP:5001 --storage-opt dm.fs=xfs /    -s devicemapper /    --storage-opt dm.thinpooldev=/dev/mapper/docker--vg-docker--pool /    -p "/var/run/docker2.pid" /    -g "/var/lib/docker2" --exec-root="/var/run/docker2"    --cluster-store=consul://$IP:8500 /    --cluster-advertise=$IP:2376# start a docker daemon and bind to a specific portdockerdaemon -H tcp://$IP:5000 --storage-opt dm.fs=xfs /      -p "/var/run/docker1.pid" /      -g "/var/lib/docker1" /      --exec-root="/var/run/docker1# and start another daemondocker daemon -H tcp://$IP:5001 --storage-opt dm.fs=xfs /    -s devicemapper /    --storage-opt dm.thinpooldev=/dev/mapper/docker--vg-docker--pool /    -p "/var/run/docker2.pid" /    -g "/var/lib/docker2" --exec-root="/var/run/docker2"    --cluster-store=consul://$IP:8500 /    --cluster-advertise=$IP:2376

2. Docker Exec的使用

Docker Exec是一个很重要很多人都会用到的工具,也许你使用Docker不只是为你的升级,生产和测试环境,同时也对本地机器上运行的数据库,服务器密钥库等,这是能够直接运行的容器的上下文中运行的命令,非常方便。

我们做了大量的Cassandra,并检查表是否包含正确的数据。如果你只是想执行一个快速CQL查询,Docker exec 就很赞:

$ docker ps --format "table {{.ID}}/t {{.Names}}/t {{.Status}}"CONTAINER ID    NAMES        STATUS682f47f97fce     cassandra      Up 2 minutes4c45aea49180     consul       Up 2 minutes$ docker exec -ti 682f47f97fce cqlsh --colorConnected to Test Cluster at 127.0.0.1:9042.[cqlsh 5.0.1 | Cassandra 2.2.3 | CQL spec 3.3.1 | Native protocol v4]Use HELP for help.cqlsh>
$ dockerps --format "table {{.ID}}/t {{.Names}}/t {{.Status}}"CONTAINERID    NAMES       STATUS682f47f97fce    cassandra     Up 2 minutes4c45aea49180    consul       Up 2 minutes$ dockerexec -ti 682f47f97fce cqlsh --colorConnectedto TestClusterat 127.0.0.1:9042.[cqlsh 5.0.1 | Cassandra 2.2.3 | CQLspec 3.3.1 | Native protocolv4]Use HELPfor help.cqlsh>

或者只是访问nodetool或镜像中可用的任何其他工具:

$ docker exec -ti 682f47f97fce nodetool statusDatacenter: datacenter1=======================Status=Up/Down|/ State=Normal/Leaving/Joining/Moving-- Address     Load    Tokens    Owns  Host ID                RackUN 192.168.99.100 443.34 KB 256     ?    8f9f4a9c-5c4d-4453-b64b-7e01676361ff rack1Note: Non-system keyspaces don't have the same replication settings, effective ownership information$ dockerexec -ti 682f47f97fce nodetoolstatusDatacenter: datacenter1=======================Status=Up/Down|/ State=Normal/Leaving/Joining/Moving-- Address    Load   Tokens   Owns  HostID               RackUN 192.168.99.100 443.34 KB 256     ?   8f9f4a9c-5c4d-4453-b64b-7e01676361ff rack1Note: Non-systemkeyspacesdon't havethesamereplicationsettings, effectiveownershipinformation
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表